【问题标题】:Django - ModelChoiceField - TypeError - __init__() takes at least 2 arguments (1 given)Django - ModelChoiceField - TypeError - __init__() 至少需要 2 个参数(1 个给定)
【发布时间】:2011-12-30 15:55:37
【问题描述】:

我使用的是 Django 1.2。我正在尝试在表单中使用 ModelChoiceField。为什么这些失败并显示上述错误消息?我很茫然:-(

class QueueForm(forms.Form):
    queue = forms.ModelChoiceField(query_set=Order.objects.all())

我也试过这个:

class QueueForm(forms.Form):
    queue = forms.ModelChoiceField(query_set=Order.objects.all(),required=False)

得到:

__init__() takes at least 2 arguments (2 given)

这似乎是说这发生在 queue = .. 线上。在我使用表单之前。

【问题讨论】:

    标签: python django django-forms


    【解决方案1】:

    您在构造函数中设置了错误的变量名,它需要是 queryset 而不是 query_set。试试这个:

    class QueueForm(forms.Form):
    queue = forms.ModelChoiceField(queryset=Order.objects.all())
    

    【讨论】:

    • 哇!我知道它必须是这样明显的:-(我觉得很愚蠢。
    • 很高兴为您提供帮助!如果 Django 函数参数有更一致的变量名称约定,那就太好了。
    猜你喜欢
    • 2012-10-08
    • 2013-08-15
    • 2016-05-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-12-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多