2010-03-26 99 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) 

的形式呈現O.K. (所有語言都有複選框,ID,名稱都可以) 但是如果我爲用戶保存一些語言,那些語言請不要選中複選框。

用戶模型看起來像這樣

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 2011-08-03 03:13:26