Django——多对多选择器小部件在哪里?

Ric*_*ves 6 django many-to-many widget picker many-to-one

对于表 A 的每一行,我希望能够添加表 B 中的一行或多行。

Django 管理员有一个示例,即用户权限选择器——我附上了屏幕截图。

用于用户权限的 Django 选择器,多对多选择器

每个用户可以拥有任意数量的权限。权限从左侧开始。当您添加一个时,它会向右移动。您可以来回移动它们。

这就是我想要的我自己的两个模型。我如何获得这个小部件?

我首先认为我需要一个多对一的小部件,但进一步思考,我认为这是多对多的。用户获得权限后,其他用户仍然可以使用该权限。一个用户可以有多个权限;对于特定权限,可以将相同的权限授予多个用户——必须是多对多。我的两个表的工作方式相同。

我需要用户可以访问的添加和更新记录页面上的小部件;我不需要在管理页面上使用它。(我很幸运在用户管理页面上找到了我需要的完美示例。)

Nir*_*ran 9

在你的admin.py

class your_model_admin(admin.ModelAdmin):
    ...
    filter_horizontal = ('field_name',) 
Run Code Online (Sandbox Code Playgroud)

这将使一个小部件也与permission该字段的字段相同field_name