我正在尝试使用m2m字段。
我想要做的是拥有一个字符串(CharField),用户可以在其中编写帖子的标签,每个标签用逗号分隔。
我能够以这种方式进行创作:
tags = tags.split(',')
for tag in tags:
obj, create = Tag.objects.get_or_create(name=tag)
pub.tags.add(obj)
现在,我想做UpdateView。显然,如果我没有在表单中指定从列表到字符串的转换,我没有任何值集。所以它应该是这样的:
for tag in tags:
str+=tag+","
重点是:
PS:在UpdateView中,如果我删除了一个标签,我怎么能从关系中删除它,因为我必须手工解析?
感谢。
答案 0 :(得分:0)
最简单的方法是首先从pub.tags
删除所有代码,然后将它们全部添加回来:
# Clear the existing tags
pub.tags.clear()
tags = tags.split(',')
for tag in tags:
obj, create = Tag.objects.get_or_create(name=tag)
pub.tags.add(obj)
您可以尝试使用更多pythonic方法,而不是循环和构建String:
tags = ['red','green','blue'] ''。加入(标签) '红,绿,蓝'