Python Django格式的查询集

Python Django格式的查询集,python,django,forms,Python,Django,Forms,我有错误:TypeError:\uuuuu init\uuuu()缺少1个必需的位置参数:“queryset”。如何在\uuu init\uuuu表单中使用Queryset?除非您当前隐藏了一些信息,否则最好在模型选择字段的声明中声明Queryset: class PaymentSelectForm(forms.Form): date_from = forms.DateField() date_to = forms.DateField() website = Mod

我有错误:TypeError:
\uuuuu init\uuuu()
缺少1个必需的位置参数:“queryset”。如何在
\uuu init\uuuu
表单中使用
Queryset

除非您当前隐藏了一些信息,否则最好
模型选择字段的声明中声明Queryset

class PaymentSelectForm(forms.Form):   
    date_from = forms.DateField()
    date_to = forms.DateField()
    website = ModelChoiceField() 
    paymentmethod = forms.ChoiceField(choices=PAYCODE_CHOICES)

    def __init__(self, *args, **kwargs):
        super(PaymentSelectForm, self).__init__(*args, **kwargs)
        applyClassConfig2FormControl(self) 
        self.fields['website'].queryset=Website.objects.all()

但是,如果
queryset
依赖于传递给表单的参数,或者依赖于其他表(不能优雅地将其写入SQL查询),则通常会出现这种情况。

使用
小部件。选项

class PaymentSelectForm(forms.Form):

    date_from = forms.DateField()
    date_to = forms.DateField()
    website = ModelChoiceField(queryset=None) 
    paymentmethod = forms.ChoiceField(choices=PAYCODE_CHOICES)

    def __init__(self, *args, **kwargs):
        super(PaymentSelectForm, self).__init__(*args, **kwargs)
        applyClassConfig2FormControl(self)
        self.fields['website'].queryset=Website.objects.all()

我不明白你为什么要在
\uuuu init\uuuu
中这样做,而不是在字段本身的构造中这样做?这是django admin表单吗?还是简单的?使用forms.ModelForm而不是forms.Form。@AnupYadav:但是错误是由
ModelChoiceField
构造引起的,因此无论我们使用什么类型的
表单
,它都会出错,因为我们从未构造
PaymentSelectForm
类。
class PaymentSelectForm(forms.Form):

    date_from = forms.DateField()
    date_to = forms.DateField()
    website = ModelChoiceField(queryset=None) 
    paymentmethod = forms.ChoiceField(choices=PAYCODE_CHOICES)

    def __init__(self, *args, **kwargs):
        super(PaymentSelectForm, self).__init__(*args, **kwargs)
        applyClassConfig2FormControl(self)
        self.fields['website'].queryset=Website.objects.all()
def __init__(self, *args, **kwargs):
        super(PaymentSelectForm, self).__init__(*args, **kwargs)
        applyClassConfig2FormControl(self) 
        self.fields['website'].widget.choices=(
            (choice.pk, choice) for choice in Website.objects.all()
        )