这是一个关于在Django中创建自定义字段的问题。我正在做一个叫做
EditAreaField
TextField
. 我的代码是这样的:
class EditAreaField(models.TextField):
description = "A field for editing the HTML of a page"
def formfield(self, **kwargs):
defaults = {}
defaults['widget'] = EditArea() # setting a new widget
defaults.update(kwargs)
return super(EditAreaField, self).formfield(**defaults)
在第五行
,我正在为此字段分配一个自定义小部件。
第6行
,我更新了参数。
问题是,Django发送了一个参数
widget
设定为
django.contrib.admin.widgets.AdminTextareaWidget
如何更改Django正在设置的值?显然,我可以通过切换第5行和第6行来覆盖它们的设置,因此我的代码如下所示:
defaults.update(kwargs)
defaults['widget'] = EditArea() # override django here
但这真的是最好的方法吗?
顺便说一句,我在Django网站的任何地方都找不到关于formfield()函数的文档:它是否已弃用?