Je développe une application sur app-engine-path. Je voudrais faire la forme avec multichoice (langues acceptables pour l'utilisateur). code ressemble à ceci:Champ de formulaire à choix multiple dans Django
Paramètres de langue:
settings.LANGUAGES = ((u"cs", u"Čeština"), (u"en", u"English"))
modèle de formulaire:
class UserForm(forms.ModelForm):
first_name = forms.CharField(max_length=100)
last_name = forms.CharField(max_length=100)
languages = forms.MultipleChoiceField(widget=forms.CheckboxSelectMultiple,
choices=settings.LANGUAGES)
La forme est rendue Ö.K (toutes les langues ont la case à cocher. ID, NOM est correct.) Mais si j'enregistre quelques langues pour l'utilisateur, les langues ne cocheront pas les cases.
modèle utilisateur ressemble à ceci
class User(User):
#...
languages = db.StringListProperty()
#...
et vue:
def edit_profile(request):
user = request.user
if request.method == 'POST':
form = UserForm(request.POST)
if form.is_valid():
# ...
else:
form = UserForm(instance=user)
data = {"user":user, "form": form}
return render_to_response(request, 'user_profile/user_profile.html', data)
Ne pas oublier d'accepter la réponse si cela a fonctionné. – John