Редактирование представления Django ModelFormset
Я создаю приложение для учета расходов, которое имеет две формы.
A normal modelform
class ExpenseCreateForm(forms.ModelForm): expense_description = forms.CharField(widget=forms.Textarea(attrs={'rows': 3})) class Meta: model = models.Expense fields = ['expense_title', 'expense_description', 'expense_requester', 'expense_VAT', 'expense_discount', 'expense_sub_total', 'expense_total']
A modelformset_factory:
class ItemCreateForm(forms.ModelForm):
quantity = forms.DecimalField(required=False)
amount = forms.DecimalField(required=False)
class Meta:
model = models.ExpenseItemModel
can_delete = True,
fields = ['item_name', 'item_price', 'item_link', 'quantity', 'amount']
ItemCreateFormset = modelformset_factory(
models.ExpenseItemModel,
form=ItemCreateForm,
can_delete=True,
extra=0,
)
Ниже представлена страница создания - первые 3 поля представляют собой обычную форму модели, а следующие 2 строки могут быть добавлены динамически с помощью jquery. Все работает нормально и экземпляры модели отправляются в БД
Для моего представления редактирования я смог отобразить экземпляр modelform, как показано ниже
моя проблема заключается в отображении экземпляров modelformset_factory
Ниже приведен мой вид редактирования
class DetailExpense(View):
template = 'expense/expense_detail.html'
def get(self, request, expense_id, company_slug):
expense_record = models.Expense.objects.select_related('expense_requester').prefetch_related(
'expense_item').get(pk=expense_id)
#expense_record_items = get_object_or_404(models.ExpenseItemModel,)
editable = True
expense_item_form = formset_factory(forms.ItemCreateForm)
expense_form = forms.ExpenseCreateForm(instance=expense_record)
context = {
'expense_record': expense_record,
'editable': editable,
'expense_item_form': expense_item_form,
'expense_form': expense_form,
}
return render(request, template_name=self.template, context=context)