我需要类似Django的功能。
原因:我为管理员和其他页面编写了带有单独配置的小部件。在自定义字段中确定的配置:
class Article(models.Model):
field = CustomField(config={'default': {}, 'admin': {}})
出于这个原因,我不能用我的小部件扩展 AdminTextareaWidget(下面的当前代码的一部分)。或者我可以吗?如何?
class CustomField(TextField):
def __init__(self, config, *args, **kwargs):
self.config = dict_merge(initial_config, config)
super(CustomField, self).__init__(*args, **kwargs)
def formfield(self, **kwargs):
###################################
# need to check for admin page here
###################################
defaults = {'widget': CustomWidget(self.config)}
defaults.update(kwargs)
return super(CustomField, self).formfield(**defaults)
class CustomWidget(Textarea):
def __init__(self, config, attrs=None):
#########
# or here
#########
self.config = config
super(CustomWidget, self).__init__(attrs)