这是关于在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)
在第5行上,我为这个字段分配了一个自定义小部件。在第6行,我更新参数。在
问题是,Django发送了一个参数widget
,该参数被设置为django.contrib.admin.widgets.AdminTextareaWidget
,它覆盖了我的EditArea()小部件。在
如何更改Django设置的值?显然,我可以通过切换第5行和第6行来覆盖它们的设置,因此我的代码如下:
^{pr2}$但这真的是最好的办法吗?在
顺便说一句,我在Django的网站上找不到关于formfield()函数的文档:它是不推荐使用的吗?在
看起来
formfield
方法是由ModelForm
助手调用的。根据文档,formfield
方法应该只包含一个form_class
属性,以指向这个定制模型字段的formfield类。这是一个自定义(或默认)表单字段类,它是定义默认小部件的地方相关问题 更多 >
编程相关推荐