如何从管理上下文数据中找到InlineModelAdmin?

问题描述 投票:1回答:1

我试图测试正确的形式与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 django-forms
1个回答
1
投票

Django将你的form传递给modelform_factory以生成admin中使用的表单类(源代码)。这样就可以将fields等模型管理选项包含在表单中。

我认为你不应该担心formsets[1].forms[0]的类型。将其视为实施细节。正如你在评论中所建议的,应该足以断言RateInline.form == RateForm,并相信当你设置form时Django做正确的事情。

© www.soinside.com 2019 - 2024. All rights reserved.