你可以在
ModelForm类中声明一个名为的属性
formfield_callback。这应该是一个函数,它以Django模型
Field实例为参数,并返回一个表单Field实例以在表单中表示它。
然后,你要做的就是查看传入的模型字段是否是的实例
DateField,如果是,则返回你的自定义字段/小部件。否则,模型字段将具有一个名为的方法
formfield,你可以调用该方法以返回其默认表单字段。
因此,类似:
def make_custom_datefield(f): if isinstance(f, models.DateField): # return form field with your custom widget here... else: return f.formfield(**kwargs)class SomeForm(forms.ModelForm) formfield_callback = make_custom_datefield class meta: # normal modelform stuff here...



