我有一个适用于我的订单的detailview,并且想向其中添加另一个查询集(用于模型输入),以便能够向用户读取一些我没有存储在订单模型中的数据。
由于两个模型共享同一个外键购物车,因此最好的攻击方法是什么?
我想朝着以下方向发展: entry_obj = Entry.objects.filter(cart = Order.objects.cart)?但是如何将其实现到detailview中?
^re { return X; }
re$ { return X; }
Models.py
url(r'^(?P<order_id>[0-9A-Za-z]+)/$', views.OrderDetailView.as_view(),
name="detail"),
class OrderDetailView(LoginRequiredMixin, DetailView):
def get_object(self):
qs = Order.objects.by_request(
self.request
).filter(order_id = self.kwargs.get('order_id'))
if qs.count() == 1:
return qs.first()
return Http404
Models.py
class Entry(models.Model):
product = models.ForeignKey(Product, null=True)
cart = models.ForeignKey(Cart, null=True)
fabric = models.ForeignKey(Fabric, null=True)
quantity = models.PositiveIntegerField()
感谢帮助!
答案 0 :(得分:2)
为此,您可以覆盖get_context_data
:
class OrderDetailView(LoginRequiredMixin, DetailView):
def get_object(self):
qs = Order.objects.by_request(
self.request
).filter(order_id = self.kwargs.get('order_id'))
if qs.count() == 1:
return qs.first()
return Http404
def get_context_data(self, **kwargs):
context = super(OrderDetailView, self).get_context_data(**kwargs)
context['entry_obj'] = Entry.objects.filter(cart=self.object.cart)
return context
在模板中,您将能够获得如下条目详细信息:
{{ entry_obj.quantity }}