2017-09-24 9 views
1

taggitフォームラベル: Djangoは私がやっによって選択肢のリストとしてtaggitモデルに登録されたタグをレンダリングするためのソリューション見つけた

from taggit.models import Tag 
class BlogPost(models.Model): 
    tags = models.ForeignKey(Tag, on_delete=models.CASCADE, default='') 

は(私が推測するtaggitフォルダで何かを変更し、....私は忘れてしまったが、私は

)何の問題もなく動作しますが、私は、デフォルトでは「タグ」)

私はforms.pyでみました(ラベル名を変更したい:

imports ... 
class PostForm(forms.ModelForm): 
    tag = [(i, i) for i in Tag.objects.all()] 
    tags = forms.ChoiceField(label='another label name', choices=tag) 
    class Meta: 
     model = BlogPost 
     fields = ('tags',) 

私は期待した結果を表示しますが、保存するかPOSTするとフォーム検証エラーが返されます '' 'タグ名を割り当てることはできません' ': "BlogPost.tags"は "Tag"インスタンスでなければなりません。

はそう誰かがこれと感謝

答えて

1

を扱うことができますが、キー

class PostForm(forms.ModelForm): 
    tag = [(i.pk, i.title) for i in Tag.objects.all()] 
    #  ^^^^^ 
    tags = forms.ChoiceField(label='another label name', choices=tag) 

としてpkを使用する必要があり、より良い解決策かもしれModelChoiceField

 tags = forms.ModelChoiceField(queryset=Tag.objects.all(), empty_label=None) 
+0

タグは(タイトルを持っていない使用することですおそらく私の変更のため)しかし、第二の1つはありがとう – a7me3D

+0

あなたを助けてうれしい、タイトルは例としてあなたの列名を変更する必要がありました。 –

関連する問題