У меня есть следующие модели 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>
....
Но вышесказанное не работает. По сути, я хочу, чтобы у меня была возможность добавлять код продукта при создании позиций заказа для заказа. После сохранения позиция заказа должна быть сохранена с соответствующим идентификатором продукта с кодом продукта, введенным пользователем.
Любое понимание будет оценено.
Спасибо ...