2011-04-05 19 views
1

我正在使用django-taggit(請參閱here)。這是我有:django/taggit - 不可用類型:'list'

forms.py

from taggit.forms import * 

    class MyForm(forms.Form): 
     title = forms.CharField() 
     my_tags = TagField(max_length=800, widget=forms.TextInput(attrs={'class':'myTags'})) 

views.py

 if 'submit_button' in request.POST: 
      form = MyForm(request.POST) 
      if form.is_valid(): 
       cd = form.cleaned_data 
       f_title = cd['title'] 
       f_my_tags = cd['my_tags'] 

       p = MyData.objects.create(title=f_title) 
       p.tags.add(f_my_tags) 
       p.save() 

mytemplate.html

{{ form.my_tags.errors }} 
{{ form.my_tags }} 

不知道爲什麼我得到unhashable type: 'list'當我使用p.tags.add(f_my_tags)在我的views.py中。有任何想法嗎?謝謝!

回答

4

您需要單獨添加標籤:

map(p.tags.add, cd['my_tags']) 

這相當於:

for tag in cd['my_tags']: 
    p.tags.add(tag) 

或將它們作爲位置參數tags.add:

p.tags.add(*cd['my_tags']) 

這相當於: p.tags.add(cd ['my_tags'] [0],cd ['my_tags] [1] ...)

+0

你是個天才!非常感謝!我已經結束了使用p.tags.add(* cd ['my_tags'])。 – avatar 2011-04-05 13:41:53

相關問題