gpt4 book ai didi

python - 如何在模板中显示 parent 的 child ?

转载 作者:太空宇宙 更新时间:2023-11-04 04:09:19 26 4
gpt4 key购买 nike

我有以下模型:

class Category(models.Model):
cat_image = models.ImageField(upload_to='Category',null=True, blank=True)
cat_title = models.CharField(max_length=250)
cat_overview = models.CharField(max_length=500)
cat_slug = models.SlugField(unique=True)


class SubCategory(models.Model):
sub_cat_image = models.ImageField(upload_to='SubCategory',null=True, blank=True)
sub_cat_title = models.CharField(max_length=255)
sub_cat_overview = models.CharField(max_length=500)
sub_cat_parent = models.ForeignKey(Category, on_delete=models.CASCADE)
sub_cat_slug = models.SlugField(unique=True)


class SubSubCategory(models.Model):
subsub_cat_title = models.CharField(max_length=150)
subsub_cat_parent = models.ForeignKey(SubCategory, on_delete = models.CASCADE)
subsub_cat_slug = models.SlugField(unique=True)

我已经用一些数据填充了这些模型,在模板中显示 Category 模型没有问题,但是当我想显示 SubCategory 时出现问题SubSubCategory 同时在一个模板中。

enter image description here

这些是类别,但是当我点击“Python”时。此页面显示:

enter image description here

您在上面的代码中看到的问题是只有 python syntaxPython VariablesPython loops 属于 Python基本 而非Python 文件Python 日志。如何避免这种情况并仅显示 SubCategory 模型的相关 SubSubCategory 实例?

与上图关联的代码:

views.py

def home(request):
return render(request, 'tutorials/home.html', {'categories':Category.objects.all()})


def sub_cat(request, category):
sub_cats = SubCategory.objects.filter(sub_cat_parent__cat_slug=category)
subsub_cats = SubSubCategory.objects.filter(subsub_cat_parent__sub_cat_parent__cat_slug = category)

context = {
'sub_cats': sub_cats,
'subsub_cats': subsub_cats,
}
return render(request, 'tutorials/sub_cat.html', context)

sub_cat.html

<div class="row">
<div class="col-md-3">
<div class="sidenav">
{% for sub_cat in sub_cats %}
<button class="dropdown-btn"> {{ sub_cat.sub_cat_title }}
<i class="fa fa-caret-down"></i>
</button>
<div class="dropdown-container">
{% for subsub_cat in subsub_cats %}
<a href="#">{{ subsub_cat.subsub_cat_title }}</a>
{% endfor %}
</div>
{% endfor %}
</div>
</div>
<div class="col-md-9">
<h2>Learn Python</h2>
<p>
Authoritatively ....
</p>
</div>

请帮我解决这个问题,谢谢。

编辑:如果您知道其他更好的方法,请帮助我。

最佳答案

与其获取所有 SubSubCategory 实例并使用它们两次,不如使用反向关系:

{% for subsub_cat in sub_cat.subsubcategory_set.all %}
<a href="#">{{ subsub_cat.subsub_cat_title }}</a>
{% endfor %}

您可以在 Related objects 中阅读更多关于反向关系的信息文档。

关于python - 如何在模板中显示 parent 的 child ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56632693/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com