假设App表有个字段
depency = models.ManyToManyField(DataSource,through='AppDepend',related_name='depency_resource')
AppDepend是中间表
#定义form
class AppDependInline(admin.TabularInline):#inlineModel
model = AppDepend
extra = 1
fk_name = 'app'
class AppSearch(BaseSearch):
inlines = (AppDependInline,)
然后在site里面注册site.register(App, AppSearch)
在添加页面中可以发现 表单下面多了一个 fieldset
在这里就是添加多对多关系的地方,选择select,填写中间表AppDepend其他信息,可以增删改,非常方便。
如果你觉得在select中不需要显示所有多对多的外键,可以这么做
有点忘了,后天补上
在model中 加上limit_choices_to如:
models.ForeignKey(Database, limit_choices_to={'isLogic':False})