Django 2 объединяет ListView и DetailView на моей странице шаблона - PullRequest
1 голос
/ 09 ноября 2019

У меня есть две модели "product" и "brand" product. Имеется поле бренда ManyToMany, чтобы связать продукты с соответствующим брендом.

## models.py 
class Product(models.Model):
    title           = models.CharField(max_length=120)
    slug           = models.SlugField(blank=True, unique=True)
    description     = models.TextField()
    brand = models.ManyToManyField(Brand)
class Brand(models.Model):
    title = models.CharField(max_length=250, unique=True)
    slug = models.SlugField(max_length=250, unique=True)
    description = models.TextField(blank=True)
## url.py 
re_path(r'^brands/(?P<slug>[\w-]+)/$', BrandDetail.as_view(), name = 'branddetail'),
## views.py
class BrandDetail(DetailView):
    queryset = Brand.objects.all()
    template_name = "brands/brand.html"
## brands/brand.html 
{{ object.title }} <br/>
{{ object.description }} <br/>

Теперь, когда я rendring brand.html, отображается название и описание бренда. штраф

Мой вопрос: если я хочу отобразить на той же странице список продуктов , связанный с конкретным брендом «учитывая марку, уже переданную в URL», как я могу это сделать? ?

класс - DetailsView, и он содержит только сведения о бренде в наборе запросов, как показано !! мне нужно любое решение не

1 Ответ

1 голос
/ 09 ноября 2019

Вам не нужно ListView для этого, вы можете перебрать product_set бренда, например:

{{ object.title }} <br/>
{{ object.description }} <br/>
products:
{% for product in <b>object.product_set.all</b> %}
    {{ product.title }} <br/>
{% endfor %}
...