【发布时间】:2021-10-28 15:20:29
【问题描述】:
我想通过覆盖 clean 方法来验证 Django 管理中的多对多字段。
thread 提供了一种方法,方法是创建一个 ModelForm,然后在那里进行清理。但是,我的问题是多对多字段是内联的,即我有一个表格内联,而不是您必须选择多个元素的小部件。
我想知道是否有人知道如何在 ModelForm 中添加内联,以便我可以进行清理和验证。我见过人们谈论 inlineformset_factory,但它总是与 views.py 相关,而不是管理员(我不知道我什至会如何覆盖它的 clean 方法)。
我在下面添加了一些代码:
class ProductVariantForm(ModelForm):
class Meta:
model = ProductVariant
fields = [ 'name',
'price',
]
# I then want to be able to add something like
# inlines = [OptionValueInline,]
# for the inline many-to-many field.
def clean(self):
# Check if list of option_values is ok.
class ProductVariantAdmin(admin.ModelAdmin):
form = ProductVariantForm
【问题讨论】:
标签: django django-models django-forms many-to-many inline-formset