【发布时间】:2010-12-08 15:53:57
【问题描述】:
我有以下 Django 模型:
class Order:
order_id
order_date
class OrderItem
models.ForeignKey(Order)
models.ForeignKey(Product)
quantity
unit_price
解释一下,一个订单可以包含多个订单项。
现在,我想创建一个允许创建订单的模板。所以在我的视图函数中,我有以下内容:
def new_order:
order = Order()
OrderItemFormSet = inlineformset_factory(Order, OrderItem, extra=2)
formset = OrderItemFormSet()
cntx = {'formset': formset, 'order':order}
return render_to_response('some_page.html', cntx)
在模板本身中,我遍历了表单集中的表单,一切似乎都可以正常工作,这意味着我能够创建一个包含多个订单项的订单。
现在,我创建了一个名为 Product 的新模型。新的 Product 模型将成为 OrderItem 模型的一部分。因此,我们订购的商品包含产品以及数量、单价等其他指标。
class Product:
product_code
product_name
接下来,我使用以下行更新了 OrderItem 模型:
product = models.ForeignKey(Product)
我面临的问题是如何在模板中处理上述场景。在添加 Product 模型之前,遍历表单集的 for 循环是这样的:
{% for form in formset %}
<td> {{form.quantity}} </td>
....
{%endfor%}
现在,理想情况下,我认为我可以这样做:
{% for form in formset %}
<td> {{form.quantity}} </td>
<td> {{form.product.code}} </td>
....
但以上不起作用。基本上,我想要实现的是能够在为订单创建订单项目时添加产品代码。保存时,订单商品应与用户输入的产品代码对应的产品id一起保存。
我们将不胜感激。
谢谢...
【问题讨论】: