为了账号安全,请及时绑定邮箱和手机立即绑定

TypeError: __init__() 得到了一个意外的关键字参数“选择”

TypeError: __init__() 得到了一个意外的关键字参数“选择”

凤凰求蛊 2022-06-22 18:47:17
TypeError: init () got an unexpected keyword argument 'choices'forms.pyclass StudentMarksheetform2(forms.Form):    subject_code=(        (1,'CS101'),        (2,'CS102'),        (3,'CS103'),        (4,'CS104'),        (5,'CS105'),        (6,'CS106')    )    code_title=forms.IntegerField(choices=subject_code,default='1')    class Meta():        model=StudentMarksheetdata2        fields=['code_title']
查看完整描述

2 回答

?
小怪兽爱吃肉

TA贡献1852条经验 获得超1个赞

这是一种形式。表单处理与用户的交互。一个没有。IntegerField_ 毕竟所有模型都处理我们如何在数据库中存储数据。formschoicesIntegerField


您可以为此使用TypedChoiceField[Django-doc]:


class StudentMarksheetform2(forms.Form):

    SUBJECT_CODE = (

        (1,'CS101'),

        (2,'CS102'),

        (3,'CS103'),

        (4,'CS104'),

        (5,'CS105'),

        (6,'CS106')

    )


    code_title=forms.TypedChoiceField(choices=SUBJECT_CODE, coerce=int, initial=1)

    

    class Meta:

        model=StudentMarksheetdata2

        fields=['code_title']


查看完整回答
反对 回复 2022-06-22
?
慕妹3146593

TA贡献1820条经验 获得超9个赞

“forms.IntegerField()”没有“choices”和“default”选项,与“models.IntegerField()”有“choices”和“default”选项不同。


因此,要使用“django.forms ”中的字段(类)使用下拉单选框,请使用具有“选择”和“初始”选项的“ChoiceField”或“TypedChoiceField” ,如下所示。* “初始”选项等同于“默认”选项:


“选择领域”:


# "forms.py"


from django import forms


class StudentMarksheetform2(forms.Form):

    

    # ...

    

    code_title=forms.ChoiceField(choices=SUBJECT_CODE, initial=1)

    

    # ...

“类型选择字段”:


# "forms.py"


from django import forms


class StudentMarksheetform2(forms.Form):

    

    # ...

    

    code_title=forms.TypedChoiceField(choices=SUBJECT_CODE, initial=1)

    

    # ...


查看完整回答
反对 回复 2022-06-22
  • 2 回答
  • 0 关注
  • 255 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信