2012-12-21 56 views
1

這是模型將數據保存到django中的ManyToManyField錯誤?

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的'),它的工作原理。

請幫忙!

+1

你肯定'i'不包含任何額外的字符,如空間? – Rohan

+0

您是否嘗試過使用標記實例列表 – Charl

+0

也許它在jquery以外的'ltags'項目上失敗?將'print i'留在那裏,並查看哪個標記是錯誤發生之前處理的最後一個標記。 – tom

回答

0

我不好,原來的「我」不包含尾隨空格,再對不起