【发布时间】:2012-07-25 03:29:24
【问题描述】:
我正在尝试向我的 Django 项目中添加一个使用 South 的自定义字段。因此,我正在尝试(第一次)写introspection rules for South。我相信我的案例是最简单的,因为我只是在扩展一个 CharField。具体来说:
class ColorField(models.CharField):
def __init__(self, *args, **kwargs):
kwargs['max_length'] = 10
super(ColorField, self).__init__(*args, **kwargs)
def formfield(self, **kwargs):
kwargs['widget'] = ColorPickerWidget
return super(ColorField, self).formfield(**kwargs)
这是来自一个名为 jQuery color picker model field 的 Django sn-p,供感兴趣的人使用。
由于我没有添加任何新属性,我相信我只需要添加这些代码行:
from south.modelsinspector import add_introspection_rules
add_introspection_rules([], ["^myproject\.myapp\.models\.ColorField"])
这可能很明显,但他们应该去哪里?另外,我认为这就是我所要做的一切正确吗?
我已经查看了此处发布的几个问题,但大多数问题都涉及更复杂的内省。
根据http://south.readthedocs.org/en/latest/customfields.html#where-to-put-the-code,我已尝试将代码放在定义自定义字段的 models.py 文件顶部。但这并没有奏效。
【问题讨论】:
标签: django django-admin django-south