2017-02-08 2 views
0

У меня есть следующий вид с inlineformset для двух моделей:данных в ребенке/детали форма не отображается

  1. заказы, мастер/родительский модель
  2. LineitemInfo, модель детали/ребенок.

FormSet

LineFormSet = inlineformset_factory(Orders, LineitemInfo, 
can_delete=True, 
exclude = ('ordernotes',)) 

Вид редактирования order_edit отлично работает для мастер/родительской формы, но не отображает дочерние записи. Я могу добавить записи в дочернюю форму, и они будут сохраняться, но они не отображаются, когда я выбираю эту запись (я проверил базу данных отдельно).

def order_edit(request, pk): 
order = get_object_or_404(Orders, pk=pk) 
if request.method == "POST": 
    form = OrderForm(request.POST, instance=order) 
    if form.is_valid(): 
     order = form.save(commit=False) 
     lineitem_formset = LineFormSet(request.POST, instance=order) 
     if lineitem_formset.is_valid(): 
      order.save() 
      lineitem_formset.save() 

     return redirect('order_list') 
else: 
    form = OrderForm(instance=order) 
    lineitem_formset = LineFormSet(instance=Orders()) 
return render(request, "orders/order_edit.html", {"form": form, "lineitem_formset": lineitem_formset, }) 

Я просто получаю пустые поля в форме ребенка/детали, где должны отображаться данные. Что мне не хватает? TIA

ответ

0

Насколько я ненавижу отвечать на свои вопросы, я вызывал экземпляр пустой модели Order(), а не экземпляр заполненной модели. Итак:

lineitem_formset = LineFormSet(instance=Orders()) 

должно быть:

lineitem_formset = LineFormSet(instance=order) 
Смежные вопросы