【问题标题】:How to Display SubCategory Products in Django?如何在 Django 中显示子类别产品?
【发布时间】:2021-06-22 09:36:34
【问题描述】:

我有类别、子类别和子子类别之间的关系,并且productsub child category 相关,但我想显示subcategory 产品的列表。请让我知道我该怎么做。

这是我的models.py 文件...

class Category(models.Model):
    cat_name=models.CharField(max_length=225)
    cat_slug=models.SlugField(max_length=225, unique=True)

class SubCategory(models.Model):
    subcat_name=models.CharField(max_length=225)
    subcat_slug=models.SlugField(max_length=225, unique=True)
    category = models.ForeignKey('Category', related_name='subcategoryies', on_delete=models.CASCADE, blank=True, null=True)


class SubChildCategory(models.Model):
    subcategory=models.ForeignKey(SubCategory, related_name='SubChildRelated', on_delete=models.CASCADE, default=None, verbose_name='Sub Category')
    name=models.CharField(max_length=50, default=None)
    slug=models.SlugField(unique=True, max_length=50)

这是我的product models.py 文件...

class Product(models.Model):
    name=models.CharField(max_length=225)
    slug=models.SlugField(max_length=225, unique=True)
    subcategory=models.ManyToManyField(SubChildCategory, related_name='pro_subchild', verbose_name='Select Category')

这是我的views.py 文件,我试图在其中显示SubCategory 产品...

def home(request):
    subcat_product = Product.objects.prefetch_related('subcategory')
    return render(request, 'frontend/index.html',{'subcat_product':subcat_product}

但是上面的功能是显示SubChildCategory中的所有产品,我想根据我主页上的SubCategory显示产品。

请告诉我展示这些产品的流程。

【问题讨论】:

    标签: python django django-models django-views django-templates


    【解决方案1】:

    我认为它应该有效:

    # You can also get your sub category by id
    sub_child_categories = SubCategory.objects.get(
        slug=your_sub_category_slug
    ).SubChildRelated.all()
    
    subcat_products = Product.object.none()
    
    for sub_child_category in sub_child_categories:
        subcat_products |= sub_child_category.pro_subchild.all()
    

    subcat_productsSubCategory拥有的所有产品。

    【讨论】:

    • 能不能写在我的函数里面
    • 在您的def home(self) 中,您需要将SubCategoryslug 传递到您的主页@sainitor
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-08-18
    • 2016-02-28
    • 1970-01-01
    相关资源
    最近更新 更多