与 admin.TabularInline 有外部关系的管理面板的 Django Inline

Posted

技术标签:

【中文标题】与 admin.TabularInline 有外部关系的管理面板的 Django Inline【英文标题】:Django Inline for admin panel in foreign relationship with admin.TabularInline 【发布时间】:2021-06-26 05:08:13 【问题描述】:

models.py

class Parent (models.Model):
    id = ......
    name = ...
    address = ...


class Child (models.Model):
   id= ...
   parent = models.ForeignField(Parent)

在此架构中,是否可以将 Parent 表单带入 Child 架构中以供 admin.Tabularline 编辑?我知道可以将子架构带入父架构并使其可编辑。但我正在寻找反之亦然。有可能吗?

【问题讨论】:

【参考方案1】:

我不确定这是你想要的。但希望对你有所帮助。

class ChildInline(admin.TabularInline):
    model = Child


@admin.register(Parent)
class ParentAdmin(admin.ModelAdmin):
    list_display = ['name']
    inlines = [ChildInline]

【讨论】:

不,我想在子模型下内联父。正好相反。【参考方案2】:

我找不到在子模型下内联父级的方法。因此,我制作了自定义表单,在其中定义 fields = 'all' 然后它对我有用。

在 admin.py 中

class ChildForm(forms.ModelForm):
   class Meta:
      model = Child
      fields = '__all__'

class ChildAdmin(admin.ModelAdmin):
   form = ChildForm

admin.site.register(Child, ChildAdmin)

【讨论】:

以上是关于与 admin.TabularInline 有外部关系的管理面板的 Django Inline的主要内容,如果未能解决你的问题,请参考以下文章

我如何在管理员之外复制 admin.TabularInline(在用户端?)

如何在 ModelForm 中使用 admin.TabularInline

我的 admin.TabularInline 类返回异常:对象没有属性 'urls'

Django-Admin TabularInline 在保存前修改内联项属性

django admin TabularInline raw_id_fields 添加查询 搜索小图标显示

一起使用Django SimpleHistory和TabularInline