Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/277.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Django Taggit以自定义形式将标记呈现为对象_Python_Django_Forms_Django Taggit - Fatal编程技术网

Python Django Taggit以自定义形式将标记呈现为对象

Python Django Taggit以自定义形式将标记呈现为对象,python,django,forms,django-taggit,Python,Django,Forms,Django Taggit,将问题复制到。然而,这个答案对我来说并不适用 我在表单中使用Django Taggit。表单由启用Django Taggit的对象的实例填充 在我的模板中,表单标记输入字段值设置如下: value="{{ form.tags.value|default_if_none:"" }}" 这将导致字符串值的粗略格式为: value="[<TaggedItem: foo tagged with bar>]" 如果我使用基本Django表单呈现(即{form}})呈现表单,则正确呈现标记字

将问题复制到。然而,这个答案对我来说并不适用

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

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

value="{{ form.tags.value|default_if_none:"" }}"
这将导致字符串值的粗略格式为:

value="[<TaggedItem: foo tagged with bar>]"
如果我使用基本Django表单呈现(即{form}})呈现表单,则正确呈现标记字段值,即tag1、tag2。奇怪的是,这与海报所经历的恰恰相反。对他们来说,{form}没有正确地呈现值,但对我来说,确实如此


为什么我的状态和Django的状态有这样的差异?如何使标记值在自定义表单模板中正确呈现?

我有一个解决方案,感觉很粗糙,但很有效

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

form = YourModelForm(request.POST or None, instance=your_model_instance, initial={
    'tags' : edit_string_for_tags(your_model_instance.tags.get_query_set())
})
编辑标记的字符串和获取查询集是Django Taggit的一部分


注意:您需要为\u标记导入编辑\u字符串\u。i、 e.从taggit.utils导入编辑标签的字符串

是否在项目中在线运行?然后我们可以查看链接。@用户,恐怕它不在线。