Django教程:如何在外键反向关系中使用内联
在Django后台实现Mundo到Tipo_mundo的反向内联关联
没问题,这事儿在Django admin里实现起来很简单,咱们一步步来:
步骤1:编辑你的admin.py文件
首先打开应用下的admin.py,先导入需要的模型和Django admin模块:
from django.contrib import admin from .models import Tipo_mundo, Mundo
步骤2:创建Mundo的内联类
我们需要定义一个内联类,用来在Tipo_mundo的后台页面里展示关联的Mundo实例。你可以选择两种内联布局:
TabularInline:表格形式,布局紧凑,适合字段少的模型StackedInline:堆叠形式,每个实例占一行,适合字段多的模型
这里以TabularInline为例,代码如下:
class MundoInline(admin.TabularInline): model = Mundo # 指定关联的外键字段(Mundo里指向Tipo_mundo的外键是tipo_mundo) fk_name = 'tipo_mundo' # 设置额外显示的空表单数量,方便新增关联实例 extra = 1 # 可选:如果有需要,可以设置只读字段,比如不想让用户修改某个字段 # readonly_fields = ('nome_mundo',)
步骤3:注册Tipo_mundo并关联内联类
最后,注册Tipo_mundo模型的时候,把刚才定义的内联类添加到inlines列表里:
@admin.register(Tipo_mundo) class Tipo_mundoAdmin(admin.ModelAdmin): inlines = [MundoInline] # 可选:设置列表页显示的字段,方便管理 list_display = ('nome_tipo_mundo', 'descricao_tipo_mundo')
效果验证
做完上面的操作后,启动Django服务器,进入后台管理页面:
- 打开
Tipo_mundo的详情页,你会在页面下方看到关联的Mundo实例的表单区域 - 可以直接在这里新增、编辑、删除和当前Tipo_mundo关联的Mundo记录,不需要单独跳转到Mundo的管理页面
内容的提问来源于stack exchange,提问作者Ronaldo Silveira
相关产品推荐
相关产品推荐

