对于表A的每一行,我希望能够从表B中添加一行或多行。
Django管理员有一个例子,用户权限选择器 - 我附加了一个屏幕截图。
每个用户都可以拥有任意数量的权限。权限从左侧开始。添加一个时,它会向右移动。你可以来回移动它们。
这就是我想要的两个自己的模型。我如何获得这个小部件?
我首先想到我需要一个多对一的小部件,但进一步思考,我认为这是很多很多。用户获得权限后,该权限仍可供其他用户使用。用户可以拥有多个权限;对于特定权限,可以向多个用户授予相同的权限 - 必须是多对多。我的两张桌子的工作方式相同。
我需要添加和更新用户可访问的记录页面上的小部件;我在管理页面上不需要它。 (我很幸运能够在用户管理页面上找到我需要的完美示例。)
答案 0 :(得分:2)
在admin.py
class your_model_admin(admin.ModelAdmin):
...
filter_horizontal = ('field_name',)
这会使小部件与permission
字段的field_name
字段相同
答案 1 :(得分:0)
我把票证放入code.djangoproject.com。
答案:
模块在那里,您可以使用它们。
您可以使用
中的小部件来自django.forms.widgets导入SelectMultiple
可以从
访问filter_horizontal / filter_vertical小部件来自django.contrib.admin.widgets导入FilteredSelectMultiple
https://code.djangoproject.com/ticket/28993#comment:1
但是,这些模块不能在表单上使用,因为它们依赖于javascript并且无法保证向后兼容性。
https://code.djangoproject.com/ticket/28993#comment:2
???