【发布时间】:2021-10-01 21:28:21
【问题描述】:
我创建了两个模型名称类别和子类别,如果我创建一个类别名称商品,那么我可以在其下创建子类别名称 t shirt、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
还有我的观点.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 %}
我的 urls.py
path('',home.as_view(),name='home' ),
它的作用是加载类别名称但无法在下拉菜单下子类别名称
这里有图片让你更好地理解
【问题讨论】:
标签: django django-models django-rest-framework django-views django-templates