我创建了两个模型名称类别和子类别,如果我创建一个类别名称商品,那么在此之下我可以创建子类别名称 tshirt、hoddies、shirt,所以我将类别与子类别中的外键联系起来,所以我想在哪个顶级类别将显示在所有与类别相关的子类别下,但我无法实现,我试过这个
我的模型.py
class Categories(models.Model):
name = models.CharField(max_length=100, blank=False)
joined_date = models.DateTimeField(default=timezone.now,editable=False)
update_at = models.DateTimeField(auto_now=True)
def __str__(self):
return self.name
class Subcategories(models.Model):
categories = models.ForeignKey(Categories, on_delete=models.CASCADE)
name = models.CharField(max_length=200, blank=False)
joined_date = models.DateTimeField(default=timezone.now,editable=False)
update_at = models.DateTimeField(auto_now=True)
def __str__(self):
return self.name
和我的 views.py
class home(View):
def get(self, request,):
category_list = Categories.objects.all()
return render (request, 'home.html', {'category_list': category_list })
和我的 html
<ul class="navbar-nav m-auto">
{% for category in category_list %}
<li class="nav-item dropdown">
<a class="nav-link dropdown-toggle category" href="#" id="navbarDropdown" role="button" data-bs-toggle="dropdown" aria-expanded="false">
{{ category.name }}
</a>
<ul class="dropdown-menu" aria-labelledby="navbarDropdown">
<li><a class="dropdown-item text-white" href="#"></a></li>
</ul>
</li>
{% endfor %}
我的网址.py
path('',home.as_view(),name='home' ),
它的作用是加载类别名称但无法在下拉菜单下添加子类别名称
这是你更好地理解的图片
尝试related_name = our_categories
在类别中设置外键,然后在 html 文件集中:
<ul class="dropdown-menu" aria-labelledby="navbarDropdown">
{% for item in category.our_categories.all %}
<li><a class="dropdown-item text-white" href="#"></a> {item.name} </li>
{% endfor %}
</ul>
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句