【发布时间】:2021-11-21 05:18:40
【问题描述】:
假设我们有以下模型
class Category(models.Model):
name = models.CharField(max_length=254)
class Item(models.Model):
category = models.ForeignKey(Category, on_delete=models.CASCADE, related_name="items")
name = models.CharField(max_length=254)
state = models.ForeignKey(State, on_delete=models.CASCADE)
类别和它们的项目是这样列出的
def view(request):
categories = Category.objects.all()
pass
{% for category in categories %}
{{ category.name }}
{% for item in category.items.all %}
{{ item.name }}
{% endfor %}
{% endfor %}
在这个结构中,我想为列出的“项目”编写请求过滤。
def view(request):
...
queryset = ???
state = request.GET.get('state')
if state:
queryset = queryset.filter(state__name=state)
问题在于定义“查询集”。因为,项目被列为类别的相关对象。
可以正确完成吗?还是我需要改变设计?
你可以看看我的设计更清楚。
【问题讨论】:
标签: django django-models django-views django-templates django-queryset