django按类别列出,带有indexview和detailview类
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了django按类别列出,带有indexview和detailview类相关的知识,希望对你有一定的参考价值。
我正在使用通用视图获取列表和详细信息,在索引页面上,我正在获取列表,但未获取类别列表,但是在另一个模板上却获得了类别列表。我想在索引页面上列出该类别,然后单击该类别,图像转到该列表,该列表将按该特定类别进行过滤。我希望你能理解我的问题。以下是品牌索引和类别模型的视图
class BrandsIndexView(generic.ListView):
template_name = "brands/index.html"
context_object_name = "latest_brands_list"
def get_queryset(self):
return Brands.objects.filter(created_on__lte=timezone.now()).order_by('-created_on')[:10]
model for category
class Category(models.Model):
category_name = models.CharField(null=False,max_length=200)
category_slug = models.SlugField(
max_length=200, db_index=True, unique=True)
category_image = models.FileField(upload_to="brand_cat_images",null=True,blank=True,validators=[file_ext])
class Brands(models.Model):
brand_name = models.CharField(max_length=200 , null=False,help_text="Enter Brand Name")
brand_slug = models.SlugField(max_length=200 , unique=True)
brand_logo = models.ImageField(null=False, blank=False, upload_to="brand_logo")
brand_description = models.TextField(max_length=250 ,null=True,blank=True)
brand_category = models.ForeignKey(Category,on_delete=models.CASCADE ,default="None",related_name="category")
答案
我使用模板上下文处理器做了类似的事情。
在your_app / context_processors.py中:
def category(request):
return 'categories': Category.objects.all()
在TEMPLATES
的settings.py
部分中:
'your_app.context_processors.category',
现在categories
上下文项可在模板中使用,例如在brands / index.html中:
% for cat in categories %
<a class="nav-link " href="% url 'your_url' cat.category_slug %"> cat </a>
以上是关于django按类别列出,带有indexview和detailview类的主要内容,如果未能解决你的问题,请参考以下文章