【发布时间】:2012-12-21 05:57:51
【问题描述】:
这是模型
class Question(models.Model):
question = models.CharField(max_length = 200)
questionbody = models.TextField()
author = models.ForeignKey(User)
tags = models.ManyToManyField(Tag)
timestamp = models.DateTimeField('question post date')
这是 view.py
stags = request.POST['tag']
ltags = stags.split(',')
q = Question(
question = request.POST['question'],
questionbody = request.POST['questionbody'],
author = request.user,
timestamp = datetime.datetime.now()
)
q.save();
for i in ltags:
# print i ouyput:jquery
# print type(i) ouyput:unicode
# s = Tag.objects.get(name=i)
s = Tag.objects.get(name='jquery')
q.tags.add(s)
你可以看到'tag'输入是'string,string'格式的字符串,所以我把它改成一个列表(ltags),
但是在for循环中,当我尝试添加标签时
s = Tag.objects.get(name=i)
提问,有错误说
" Tag matching query does not exist ".
但是当我使用 s = Tag.objects.get(name='jquery') 时,它可以工作。
请帮忙!
【问题讨论】:
-
您确定
i不包含任何多余的字符,例如空格? -
您是否尝试过使用标签实例列表
-
也许它在
ltags中的一个项目上失败了,而不是 jquery?将print i留在那里,看看哪个标签是错误前处理的最后一个标签。 -
谢谢你,Rohan,它确实包含空格
标签: python django many-to-many add