0

在 Edit Form 中向 Django-Taggit重复问题。但是,答案对我不起作用。

我在表单中使用 Django Taggit。该表单由启用了 Django Taggit 的对象的实例填充。

在我的模板中,表单标签输入字段值设置如下:

value="{{ form.tags.value|default_if_none:"" }}"

这会产生一个粗略格式的字符串值:

value="[<TaggedItem: foo tagged with bar>]"

如果我使用基本的 Django 表单呈现(即 {{form}} )呈现表单,则标记字段值会正确呈现(即 "tag1, tag2" )。奇怪的是,这与编辑表单中 Django-Taggit的发帖人所经历的相反。对他们来说,{{ form }} 没有正确呈现值,但对我来说,它是。

为什么我的表单和 Django 的有这种区别?如何使标签值在我的自定义表单模板中正确呈现?

4

1 回答 1

0

我有一个感觉很老套但有效的解决方案。

实例化表单时,修改标签的初始状态:

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(). IEfrom taggit.utils import edit_string_for_tags

于 2014-11-15T12:40:14.040 回答