django错误:意外关键字参数'widget'

时间:2013-01-14 23:00:03

标签: django-forms

我想将一个字段(名为“icon”)显示为单选按钮。

我创建了方法回调,以便使用JQuery显示DateTimeFields。下面的代码应该这样做,但是当我运行我的服务器时出现这个错误:

调用元类库时出错     make_custom_datefield()得到了一个意外的关键字参数'widget'

...

异常位置:fields_for_model,第164行中的Virtualenvs / django / local / lib / python2.7 / site-packages / django / forms / models.py

forms.py:

def make_custom_datefield(f):
    formfield = f.formfield()
    if isinstance(f, DateTimeField):
        formfield.widget.format = '%m/%d/%Y'
        formfield.widget.attrs.update({'class':'datetimePicker', 'readonly':'true'})
    return formfield

class FlashForm(forms.ModelForm):
    formfield_callback = make_custom_datefield

    class Meta:
        model = Flash
        exclude=('user','marker','address')
        widgets = {'icon': forms.RadioSelect(), }

你能帮助我吗,我真的不知道如何解决这个问题!

由于

1 个答案:

答案 0 :(得分:3)

最终,我找到了答案:我不得不添加** kwargs参数。

def make_custom_datefield(f,**kwargs):
    formfield = f.formfield(**kwargs)
    if isinstance(f, DateTimeField):
        formfield.widget.format = '%m/%d/%Y'
        formfield.widget.attrs.update({'class':'datetimePicker', 'readonly':'true'})
    return formfield