【发布时间】:2019-07-23 11:54:38
【问题描述】:
我正在开发用于跟踪订单的网络应用程序。我想显示用户通过 detailView 创建的所有订单。
models.py
class Order(models.Model):
...
user = models.ForeignKey(MyUser, on_delete=models.CASCADE)
order_number = models.CharField(max_length=150)
class MyUser(models.Model):
eid = models.CharField(max_length=7)
name = models.CharField(max_length=150)
surname = models.CharField(max_length=150)
views.py
class UserDetailView(generic.DetailView):
model = MyUser
template_name = "database/user_detail.html"
def get_queryset(self):
return Order.objects.all().order_by("-id")
user_detail.html
{% extends "base.html" %}
{% block content %}
<body>
<h1> {{ user.eid }} {{ user.name }} {{ user.surname }}
</h1>
{% for order in orders %}
order.order_number
{% endfor %}
{% endblock %}
使用此代码我收到错误:找不到页面:未找到与查询匹配的订单。
如果我删除views.py 中的def get_queryset(),它只显示用户的eid 和姓名。不确定如何将所有分配的订单分配给特定用户。
【问题讨论】:
-
如果你想列出所有项(订单、用户),你应该使用
generics.ListView而不是generics.DetailView
标签: python django python-3.x detailsview