【发布时间】:2020-10-26 14:31:05
【问题描述】:
我正在尝试访问每个客户的订单,我是这样处理的:
def Customer(request, pk):
Customer = customer.objects.get(id=pk)
orders = Customer.order_set.all()
order_count = orders.count()
context = {
'orders': orders,
'customer': Customer,
'order_count': order_count,
}
return render(request, 'Inventory_Management/customer.html', context)
在 youtube 上,该男子说您可以使用订单型号名称访问与客户相关的订单,在我的情况下是“订单”,然后添加 _set 我这样做了,当我现在尝试查看客户时,我收到此错误:/customer/1/ 'customer' 对象的 AttributeError 没有属性 'order_set'。
相关模型
class order(models.Model):
STATUS = (
('Pending', 'Pending'),
('Out for delivery', 'Out for delivery'),
('Delivered', 'Delivered'),
)
order_head = models.ForeignKey(order_header, blank=False, null=True, on_delete=models.SET_NULL)
items = models.ForeignKey(item, blank=False, null=True, on_delete=models.SET_NULL)
Quantity = models.CharField(max_length=100)
date_created = models.DateTimeField(auto_now_add=True, null=True)
total = models.CharField(max_length=100)
status = models.CharField(max_length=200, null=True, choices=STATUS)
def __str__(self):
return 'Order Customer: {self.order_head.Buyer}'.format(self=self)
class customer(models.Model):
name = models.CharField(max_length=12, blank=False)
phone = models.CharField(max_length=12, blank=False)
email = models.CharField(max_length=50, blank=False)
date_created = models.DateTimeField(auto_now_add=True, null=True)
def __str__(self):
return self.name
相关视图
def Customer(request, pk):
Customer = customer.objects.get(id=pk)
orders = Customer.order_set.all()
order_count = orders.count()
context = {
'orders': orders,
'customer': Customer,
'order_count': order_count,
}
return render(request, 'Inventory_Management/customer.html', context)
相关网址
path('customer/<str:pk>/', Customer, name="customer"),
相关的html
{% for customer in customers %}
<tr>
<td><a class="btn btn-sm btn-info" href="{% url 'customer' customer.id %}">View</a></td>
<td>{{customer.name}}</td>
<td>{{customer.phone}}</td>
</tr>
{% endfor %}
我不知道查询是否错误,但在 youtube 视频中,它可以正常工作。
【问题讨论】:
-
您找到解决方案了吗?我也面临同样的问题,如果你知道,请帮忙。
标签: python python-3.x django django-queryset attributeerror