我试图测试正确的形式与InlineModelAdmin一起使用
我已将自定义表单设置为:
class RateInline(admin.TabularInline):
model = Rate
fk_name = 'project'
extra = 1
form = RateForm
然而,当我试图检查RateForm
确实正在使用时,我得到:
生成的模型:
formsets = response.context['inline_admin_formsets']
ipdb> formsets[1].forms[0].__class__
<class 'django.forms.widgets.RateForm'>
但我希望以前的形式是:
<class 'billing.forms.RateForm'>
此表单是仅在验证期间使用,还是在上下文数据中生成的RateForm小部件?
Django将你的form
传递给modelform_factory
以生成admin中使用的表单类(源代码)。这样就可以将fields
等模型管理选项包含在表单中。
我认为你不应该担心formsets[1].forms[0]
的类型。将其视为实施细节。正如你在评论中所建议的,应该足以断言RateInline.form == RateForm
,并相信当你设置form
时Django做正确的事情。