根据#17950关于ModelChoiceField
,它允许选择适合表示外键的单个模型对象。
请注意,当条目数增加时,ModelChoiceField的默认小部件变得不切实际。你应该避免使用它超过100个项目。
这很明显,因为从选择框中选择100个选项并不容易。一个人必须向下滚动或找到选项。
如果有很多选择,有什么可能的解决方案?
仍然使用ModelChoiceField
,但使用自定义窗口小部件,例如select2,chosen,react-select等...而不是Select
窗口小部件。它可能有助于筛选选项。当用户键入选择框的输入时,将以异步方式查询选项以分离API端点。
Primitive,是提供一个空白的CharField
和一个TextInput
小部件。因此,用户必须手动输入值。
通过提供列出所有选项的弹出窗口,可以进一步改进解决方案2。用户可以搜索选项,单击选项后窗口将关闭,表单将自动填充值。弹出窗口与django管理列表非常相似。 (Checkout Grappelli RelatedLookup了解更多我的意思,见下图)
请问还有其他解决方案吗?为什么这个解决方案更好?
答案 0 :(得分:0)
我在我的UX中使用了上一页,其中包含可以搜索和分页数据的选项列表,然后用户从列表中选择一个项目,将其重定向到另一个页面,在该页面中有一个隐藏字段表单填充了上一个列表中选择的项目。