如何创建一个品牌页面,该页面将包含Django中与该品牌相关的所有类别

如何创建一个品牌页面,该页面将包含Django中与该品牌相关的所有类别,django,django-views,django-urls,Django,Django Views,Django Urls,我有两种型号:品牌和类别: class Brand(models.Model): name = models.CharField(max_length=250, unique=True, default='Undefined') slug = models.SlugField(max_length=250, null=True) brand_lower = models.CharField(max_length=250) site = models.CharFie

我有两种型号:品牌和类别:

class Brand(models.Model):
    name = models.CharField(max_length=250, unique=True, default='Undefined')
    slug = models.SlugField(max_length=250, null=True)
    brand_lower = models.CharField(max_length=250)
    site = models.CharField(max_length=250)
    url = models.CharField(max_length=500, unique=True)
    letter = models.CharField(max_length=1, default='Undefined')
    created = models.DateField(auto_now_add=True)
    updated = models.DateField(auto_now=True)
    status = models.CharField(max_length=25, default='New')

    def __str__(self):
        return self.name

    def save(self, *args, **kwargs):
        if not self.slug:
            self.slug = slugify(self.name)
        super().save(*args, **kwargs)

    def get_absolute_url(self): 
        return reverse('manuals:brand', args=[str(self.pk)])

    class Meta:
        ordering = ('name', )


class Category(models.Model):
    brand = models.ForeignKey(Brand, on_delete=models.CASCADE, default='Undefined')
    name = models.CharField(max_length=250, unique=True, blank=True, null=True, default='Undefined')
    slug = models.SlugField(max_length=250, null=True, unique=True)
    name_lower = models.CharField(max_length=250)
    url = models.CharField(max_length=500)
    status = models.CharField(max_length=25, default='New')

    def __str__(self):
        return self.name
    
    class Meta:
        ordering = ('name', )
- TV
- Phones
- Dishwashes
and so on...
我想为每个品牌创建一个单独的页面。该页面应列出所选品牌的所有类别。 例如页面应为:

site.com/samsung/
该页面应包含所有类别:

class Brand(models.Model):
    name = models.CharField(max_length=250, unique=True, default='Undefined')
    slug = models.SlugField(max_length=250, null=True)
    brand_lower = models.CharField(max_length=250)
    site = models.CharField(max_length=250)
    url = models.CharField(max_length=500, unique=True)
    letter = models.CharField(max_length=1, default='Undefined')
    created = models.DateField(auto_now_add=True)
    updated = models.DateField(auto_now=True)
    status = models.CharField(max_length=25, default='New')

    def __str__(self):
        return self.name

    def save(self, *args, **kwargs):
        if not self.slug:
            self.slug = slugify(self.name)
        super().save(*args, **kwargs)

    def get_absolute_url(self): 
        return reverse('manuals:brand', args=[str(self.pk)])

    class Meta:
        ordering = ('name', )


class Category(models.Model):
    brand = models.ForeignKey(Brand, on_delete=models.CASCADE, default='Undefined')
    name = models.CharField(max_length=250, unique=True, blank=True, null=True, default='Undefined')
    slug = models.SlugField(max_length=250, null=True, unique=True)
    name_lower = models.CharField(max_length=250)
    url = models.CharField(max_length=500)
    status = models.CharField(max_length=25, default='New')

    def __str__(self):
        return self.name
    
    class Meta:
        ordering = ('name', )
- TV
- Phones
- Dishwashes
and so on...
我使用ListView获取所有类别。但我无法获得正确的url

以下是视图:

class BrandCategoryListView(ListView):
    # List of Categories of a Brand
    model = Category
    template_name = 'brand_categories_list.html'
这是url.py

path('category/<int:pk>/', BrandCategoryListView.as_view(), name='brand_categories_list'),