我有一个使用django-select2库的可选字段。我目前正在尝试复制Django管理表单中“添加另一个”功能的行为。
我在常规表单模板中添加了一个“+”图标并打开了一个弹出窗口,以便用户可以注册一个新项目。这部分有效,现在我想在弹出窗口关闭后自动选择新添加的项目。我似乎无法为可选项添加新选项。
我阅读了原始的dismissAddAnotherPopup()
代码和select2
文档,但是在元素中附加new Option(...)
并没有达到预期的效果 - 实际上它添加了尽可能多的选项我想要,但它们出现在选择框下面而不是下拉菜单中,好像它们完全不同。
我查看了html结果,似乎select2
字段没有使用<option ...>
来表示使用Django呈现的选项,而是使用了更深层次的嵌套元素。
在这种情况下添加新选项的正确语法是什么?
答案 0 :(得分:0)
为我解决的问题是this answer:
new Option(...)
仅仅替换html看起来有点难看,但正如我在问题中提到的那样,在元素中添加var fileUrl: URL = URL(fileURLWithPath: NSTemporaryDirectory())
fileUrl.appendPathComponent("foo")
fileUrl.appendPathExtension("bar")
不起作用。
答案 1 :(得分:0)
不完全是客户端,但可能会有所帮助:您可以使用 django-addanother 包装器,例如:
widgets = {
'somefield': AddAnotherWidgetWrapper(Select2Widget, reverse_lazy('somefield_add')),
}
这将在 Select2 字段旁边呈现一个“+”;当按下弹出窗口时,将打开允许添加新对象。保存后,Select2Widget 将自动填充这个新创建的对象。