我正在尝试循环我的FeatureCatergories
、FeatureSubcategories
和Features
。我可以很好地循环我的功能类别。现在我想循环我的功能子类别,最后是功能。我不确定在我的子类别模板中调用什么。。应该是{{featuresubcategory.title}}
吗?那features
呢
视图.py
def features_view(request):
context = {
"feature_categories": FeatureCategory.objects.prefetch_related('featuresubcategory_set').all(),
}
return render(request=request, template_name="main/features.html", context=context)
template.html
{% for category in feature_categories %}
{{category.title}}
{% for subcategory in featuresubcategory %}
{{ subcategory.title }}
{% endfor %}
{% endfor %}
型号.py
class FeatureCategory(models.Model):
title = models.CharField(max_length=50)
featured_image = models.ImageField(blank=True, upload_to="features/")
category_slug = AutoSlugField(null=True, default=None,
unique=True, populate_from='title')
class Meta:
verbose_name_plural = "Feature Categories"
def __str__(self):
return self.title
class FeatureSubcategory(models.Model):
title = models.CharField(max_length=50)
category = models.ForeignKey('FeatureCategory', on_delete=models.CASCADE)
category_slug = AutoSlugField(null=True, default=None,
unique=True, populate_from='title')
class Meta:
verbose_name_plural = "Feature Subcategories"
def __str__(self):
return self.title
class Feature(models.Model):
title = models.CharField(max_length=150)
category = models.ManyToManyField(FeatureSubcategory)
description = models.TextField()
featured_image = models.ImageField(upload_to=image_dir)
class Meta:
verbose_name_plural = "Features"
def __str__(self):
return self.title
在模板中,必须进行更改
featuresubcategory
与category.featuresubcategory_set.all()
而且用
prefetch_related('featuresubcategory')
代替prefetch_related('featuresubcategory_set')
category = models.ManyToManyField(FeatureSubcategory,related_name='subcategory_features')
现在,您可以在模板中使用它,并且不要忘记进行迁移
您可以看到相关对象引用here
相关问题 更多 >
编程相关推荐