You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Django Form报错:BaseForm.__init__()收到意外关键字参数choixF

解决Django表单自定义kwargs参数报错问题

问题原因

你当前的代码在调用父类__init__方法时,没有先移除自定义的choixF参数,而Django的BaseForm.__init__不识别这个额外参数,因此抛出BaseForm.__init__() got an unexpected keyword argument 'choixF'错误。

修正后的表单代码

class SelectionFournisseur(forms.Form):
    Fournisseur = forms.ChoiceField(choices=())

    def __init__(self, *args, **kwargs):
        # 先从kwargs中取出自定义参数,避免传给父类
        choixF = kwargs.pop("choixF", None)
        # 调用父类构造方法,此时kwargs已不含自定义参数
        super().__init__(*args, **kwargs)
        # 仅当获取到choixF时才更新选项
        if choixF is not None:
            self.fields['Fournisseur'].choices = choixF

视图代码保持不变

formF = SelectionFournisseur(choixF=choices)

关键说明

  • 必须先执行kwargs.pop()移除自定义参数,再调用父类的__init__方法,确保传给父类的参数都是它能识别的。
  • 添加if choixF is not None的判断,避免当未传入该参数时将选项设为None导致异常。

内容的提问来源于stack exchange,提问作者Rafik Bouloudene

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.04 00:16:09