如何创建一个品牌页面,该页面将包含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'),