2010-03-26 116 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