django-extra-views и вложенные формы
Я хотел бы использовать вложенный встроенный набор форм, используя django-extra-views для создания и обновления.
Я могу реализовать типичный (не вложенный) встроенный набор форм без проблем. Вот основной пример этого.
# forms.py
class ProductForm(forms.ModelForm):
class Meta:
model = models.Product
# for brevity, assume these fields are defined on the `Product` model
fields = [
'name',
'image',
'price',
]
class VariantForm(forms.ModelForm):
class Meta:
model = models.Variant
# for brevity, assume these fields are defined on the `Variant` model
fields = [
'price_override',
'shipping_dimensions',
]
class InlineVariant(InlineFormSet):
model = models.Variant
form_class = VariantForm
extra = 1
А также
# views.py
class Add(CreateWithInlinesView):
template_name = "products/add.html"
model = models.Product
form_class = forms.ProductForm
inlines = [
forms.InlineVariant,
]
class Edit(UpdateWithInlinesView):
template_name = "products/edit.html"
model = models.Product
form_class = forms.ProductForm
context_object_name = "product"
inlines = [
forms.InlineVariant,
]
Но теперь я хочу Stock
быть в линии для каждого Variant
,
# forms.py
class StockForm(forms.ModelForm):
class Meta:
model = models.Stock
# for brevity, assume these fields are defined on the `Stock` model
fields = [
'location',
'quantity',
]
class InlineStock(InlineFormSet):
model = models.Stock
form_class = StockForm
extra = 1
Как изменить вид, определенный выше?
Существует проблема django-extra-views, которая утверждает, что это возможно. Однако нет четкого примера того, как это сделать. Кто-то предлагает сделать заказ formset_class
,
Я также нашел отдельный пакет, django-nested-admin, который определяет, казалось бы, общий NestedInlineFormset
учебный класс. Может ли это быть как-то интегрировано?
Я нахожу это действительно запутанным.