我正在尝试向使用South的 Django 项目添加自定义字段。因此,我正在尝试(第一次)为 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 颜色选择器模型字段的 Django 片段,供感兴趣的人使用。
由于我没有添加任何新属性,我相信我只需要添加这些代码行:
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 文件顶部. 但这并没有奏效。