django多对多关系(当中表)表单

django多对多关系(中间表)表单

假设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})