2010-03-26 27 views
0

Я разрабатываю приложение на пути к приложению. Я хотел был бы сделать форму с multichoice (приемлемо языки для потребителя). код выглядеть следующим образом:Поле выбора выбора в Django

Настройки Язык:

settings.LANGUAGES = ((u"cs", u"Čeština"), (u"en", u"English")) 

Форма модели:

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) 

Форма визуализируется Годится (все языки имеют флажок. Идентификаторы, NAMEs в порядке.) Но если я сохраню некоторые языки для пользователей, то эти языки не делают check checkbox.

модель пользователя выглядеть следующим образом

class User(User): 
    #... 
    languages = db.StringListProperty() 
    #... 

и зрения:

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) 

ответ

0

Я решил это так:

some_view(request): 
    ... 
    form = UserForm(instance=user, initial={"languages":user.languages}) 
    ... 
+0

Не забудьте принять ответ, если он работал. – John

Смежные вопросы