【问题标题】:Save data to ManyToManyField error in django?将数据保存到 django 中的 ManyToManyField 错误?
【发布时间】: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


【解决方案1】:

我的错,原来“i”确实包含一个尾随空格,再次抱歉

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-08-18
    • 1970-01-01
    • 2019-02-06
    • 2011-02-27
    • 2014-12-04
    • 2014-01-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多