2011-07-12 4 views
2

form.py:Django Comment travailler avec 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 

enregistre dans db comme [u'value1', u'value2']

Maintenant, Comment puis-je rendre que dans mon modèle pour montrer que la chaîne comme valeur1, valeur2 sans [u ''] ou existe-t-il un meilleur moyen d'enregistrer la valeur sous forme de chaîne?

Répondre

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

Merci pour votre réponse, mais c'est toujours la sauvegarde [u'value1 ', u'value2'] dans la base de données. – takz

+0

Je suppose que je ne sauvegarde pas la valeur correctement dans la base de données parce que lorsque je la parcourt, je reçois des lettres simples. Avec mes faibles connaissances en programmation, je sais que c'est juste en train d'enregistrer une chaîne Unicode, et non un tableau. Est-ce que quelqu'un sait comment l'enregistrer correctement dans la base de données? – takz

+0

résolu en faisant ast.literal_eval sur la vue. et itérer avec le gabarit. – takz

Questions connexes