【发布时间】:2018-07-17 09:44:31
【问题描述】:
我的订单有一个可工作的详细视图,并希望向其中添加另一个查询集(用于模型条目),以便能够向用户读出更多数据,这些数据我没有存储在订单模型中。
由于两个模型共享相同的外键购物车,最好的攻击方法是什么?
我想的方向是:entry_obj = Entry.objects.filter(cart=Order.objects.cart)?但是如何将它实现到detailview中呢?
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
模型.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()
模型.py
class Order(models.Model):
billing_profile = models.ForeignKey(BillingProfile, null=True, blank=True)
order_id = models.CharField(max_length=120, blank=True)
shipping_address= models.ForeignKey(Address, related_name="shipping_address",
null=True, blank=True)
cart = models.ForeignKey(Cart)
total = models.DecimalField(default=0.00, decimal_places=2,
max_digits=100)
active = models.BooleanField(default=True)
感谢您的帮助!
【问题讨论】:
-
你的序列化器在哪里?
-
在创建订单时,我正在使用 pre_save 方法创建 order_id。我认为没有必要提及我的细节视图问题。
标签: django django-models django-views