【问题标题】:Django Taggit rendering tags as object in custom formDjango Taggit 以自定义形式将标签呈现为对象
【发布时间】:2015-01-12 03:26:33
【问题描述】:

Django-Taggit in Edit Form 提出重复问题。但是,答案对我不起作用。

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

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

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

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

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

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

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

【问题讨论】:

  • 你有它在网上和项目中运行吗?然后我们可以查看链接。
  • @User 恐怕不在线。

标签: python django forms django-taggit


【解决方案1】:

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-09-21
    • 2012-12-27
    • 1970-01-01
    • 2023-03-05
    • 2012-08-18
    • 1970-01-01
    • 1970-01-01
    • 2011-03-08
    相关资源
    最近更新 更多