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()

TEMPLATESsettings.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类的主要内容,如果未能解决你的问题,请参考以下文章

设置一个默认值的参数来路由django中的url

如何列出与之相关的类别和论坛? Django的

Django列出包含某些相同项目的类别中的项目

DJANGO - 按类别小计和按项目总计

带有Q和多个类别的django查询

Django_filters - 未显示带有 ForeignKey 的 MultipleChoiceFilter