Поле выбора с множественным выбором в Django - PullRequest
0 голосов
/ 26 марта 2010

Я разрабатываю приложение по app-engine-path. Я хотел бы сделать форму с множественным выбором (приемлемые языки для пользователя). Код выглядит так:

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

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)

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

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

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)

1 Ответ

0 голосов
/ 04 августа 2010

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

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