2011-07-12 5 views
2

form.pyと連携する方法:ジャンゴなMultipleChoiceField

CHECKBOX_CHOICES = (
     ('Value1','Value1'), 
     ('Value2','Value2'), 
) 

class EditProfileForm(ModelForm): 
    interest = forms.MultipleChoiceField(required=False, 
            widget=CheckboxSelectMultiple(), 
            choices=CHECKBOX_CHOICES,) 

    def save(self, *args, **kwargs): 
     u = self.instance.user 
     u.interest = self.cleaned_data['interest'] 
     u.save() 
     profile = super(EditProfileForm, self).save(*args,**kwargs) 
     return profile 

それは私だけをvalue1、value2のような文字列として表示するために私のテンプレートでレンダリングすることができますどのように、[u'value1', u'value2']

としてDBに保存されます[u '']を使わないか、値を文字列として保存するより良い方法はありますか?

答えて

1
u.interest = u','.join(self.cleaned_data['interest']) 
+0

答えていただきありがとうございますが、まだデータベースに[u'value1 '、u'value2']を保存しています。 – takz

+0

私はそれらを反復すると、私は単一の文字を取得するので、私は正しくデータベースに値を保存していないと思います。プログラミングに関する知識が乏しいので、配列ではなくユニコード文字列を保存するだけであることは分かっています。誰もデータベースに正しく保存する方法を知っていますか?ビュー上でast.literal_evalを実行して解決しました。 – takz

+0

テンプレートを使用して繰り返します。 – takz