我正在尝试实现一个表单,其中有一个字段的复选框选项,用户可以为表单中的特定字段选择多个复选框,并且所有选中的值都应该在POST请求中发送。在
但是views.py是说当我试图提交表单时,表单是无效的。它无效的原因是
Select a valid choice. ['top', 'mid'] is not one of the available choices.
当我只选中一个复选框时,也会出现类似的错误。在
这是我的部分models.pyfrom django.db import models
LEAGUE_ROLES = (
('top','Top'),
('mid','Mid'),
('jungle','Jungle'),
('bottom','Bottom/ADC'),
('support','Support'),
)
class CreatePosting(models.Model)
createPostingOpenRoles = models.CharField(max_length = 10, choices=LEAGUE_ROLES, default=None)
def __str__(self): # __unicode__ on Python 2
return self.title
这是我的部分forms.py
^{pr2}$
这是我的部分views.pydef createposting(request):
UserTeamPostingCreateForm = TeamPostingCreateForm()
if request.method == "POST":
UserTeamPostingCreateForm = TeamPostingCreateForm(request.POST)
if UserTeamPostingCreateForm.is_valid():
logger.error("valid form")
else:
#print form error
logger.error(UserTeamPostingCreateForm.errors)
variables = { 'form': UserTeamPostingCreateForm }
return render(request, 'createposting.html', variables)
在我的模板中,我有一个表单字段{{ form.createPostingOpenRoles }}
如果你需要更多代码,请告诉我。
我试着研究解决办法,但没有任何效果。在
谢谢你的帮助
更新
所以我打印出views.py将呈现给模板的选项logger.error(UserTeamPostingCreateForm.fields['createPostingOpenRoles'].choices)
我得到了这个输出[('top', 'Top'), ('mid', 'Mid'), ('jungle', 'Jungle'), ('bottom', 'Bottom/ADC'), ('support', 'Support')]
当我提交带有“顶部”和“中间”复选框的表格时,我会发现这是一个无效的表格,因为:Select a valid choice. ['top', 'mid'] is not one of the available choices.