重复问题Django-Taggit in Edit Form。但是,答案对我来说并不适用。
我在表单中使用Django Taggit。该表单由启用了Django Taggit的对象实例填充。
在我的模板中,表单标记输入字段值的设置如下:
value="{{ form.tags.value|default_if_none:"" }}"
这会产生粗略格式的字符串值:
value="[<TaggedItem: foo tagged with bar>]"
如果我使用基本Django表格渲染(即{{form}})渲染表单,则正确呈现标记字段值(即&#34; tag1,tag2&#34;)。奇怪的是,这与Django-Taggit in Edit Form的海报所经历的相反。对于他们来说,{{form}}并没有正确地呈现价值,但对我来说,它是。
为什么我的表单和Django之间存在这种差异?如何在自定义表单模板中正确呈现标记值?
答案 0 :(得分:0)
我有一个解决方案,感到hacky但有效。
实例化表单时,修改标记的初始状态:
form = YourModelForm(request.POST or None, instance=your_model_instance, initial={
'tags' : edit_string_for_tags(your_model_instance.tags.get_query_set())
})
edit_string_for_tags()
和get_query_set()
是Django Taggit的一部分。
注意:您需要导入edit_string_for_tags()
。即from taggit.utils import edit_string_for_tags