python提交表单无效_Django表单返回无效

在尝试使用Django创建一个允许用户为特定字段选择多个复选框的表单时,遇到提交表单无效的问题。错误提示为:'Select a valid choice. ['top', 'mid'] is not one of the available choices.'。问题出现在models.py的CharField与choices设置,以及views.py的表单验证。已尝试打印表单字段的choices,显示为 [('top', 'Top'), ('mid', 'Mid'), ('jungle', 'Jungle'), ('bottom', 'Bottom/ADC'), ('support', 'Support')]。正在寻求解决方案。" 125614762,14743885,国产景略JL1101:高效能低功耗以太网PHY芯片,"['嵌入式硬件', '网络', '以太网技术']
摘要由CSDN通过智能技术生成

我正在尝试实现一个表单,其中有一个字段的复选框选项,用户可以为表单中的特定字段选择多个复选框,并且所有选中的值都应该在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.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值