我有一个Site
模型,我正试图创建一个扩展django.forms.ModelMultipleChoiceField
的{SiteSelectorWidget
和{
如果没有自定义表单字段,我的表单.py代码如下所示(并且有效):
sites = forms.ModelMultipleChoiceField(queryset=Site.objects.all(), widget=SiteSelectorWidget())
我想限制传递的参数,这样我就可以这样做了
^{pr2}$但是当我创建SiteSelectorField类时,Django告诉我“SiteSelectorField'对象没有属性'验证器”
class SiteSelectorField(forms.ModelMultipleChoiceField):
queryset = Site.objects.all()
widget = SiteSelectorWidget()
def __init__(self, *args, **kwargs):
pass
如何为这个字段指定一个默认的queryset和widget,这样就不需要传递它们了?在
删除
def __init__
方法和代码。通过将“pass”放在里面,您就重写了您的类继承的ModelMultipleChoiceField
的默认功能,它将利用queryset。在编辑:
重新构造您的
__init__
方法,如下所示:相关问题 更多 >
编程相关推荐