1

これがモデルです

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)

あなたが見ることができるように、「タグ」入力は「文字列、文字列」形式の文字列であるため、リスト(ltags)に変更します。

しかし、次のようなタグを追加しようとすると、forループで

s = Tag.objects.get(name=i)

質問すると、エラーが表示されます

" Tag matching query does not exist ".

しかし、s = Tag.objects.get(name='jquery') を使用すると機能します。

助けてください!

4

1 に答える 1

0

残念ながら、「i」の末尾にスペースが含まれていることが判明しました。これもまた申し訳ありません

于 2012-12-21T06:14:21.303 に答える