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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何从管理上下文数据中找到InlineModelAdmin?相关的知识,希望对你有一定的参考价值。

我试图测试正确的形式与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做正确的事情。

以上是关于如何从管理上下文数据中找到InlineModelAdmin?的主要内容,如果未能解决你的问题,请参考以下文章

如何在DDD中管理某些域“静态数据”

如何从 ExitStack 中删除上下文管理器

对于 Django 模板 %url% 标签,我如何从通用视图上下文中找到所有 URL 参数,而不仅仅是最后一个?

如何从“右键单击”上下文菜单(Windows 资源管理器)中选择多个文件以启动同一个应用程序

如何从所有蛮力组合中找到最佳解决方案?

如何在 TabLayout 中找到由 RecyclerView 打开的对话框的上下文?