Eri*_*rik 6 django django-admin django-south
我正在尝试向使用South的 Django项目添加自定义字段.因此,我正在尝试(第一次)为南方编写内省规则.我相信我的案例是最简单的,因为我只是扩展了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)
Run Code Online (Sandbox Code Playgroud)
这是一个名为jQuery颜色选择器模型字段的Django片段,供有兴趣的人使用.
由于我没有添加任何新属性,我相信我只需要添加以下代码行:
from south.modelsinspector import add_introspection_rules
add_introspection_rules([], ["^myproject\.myapp\.models\.ColorField"])
Run Code Online (Sandbox Code Playgroud)
这可能是显而易见的,但他们应该去哪里?另外,我的假设是,这是我必须要做的所有事情吗?
我已经回顾了这里发布的几个问题,但大多数都涉及更复杂的内省.
根据http://south.readthedocs.org/en/latest/customfields.html#where-to-put-the-code,我尝试将代码放在我的models.py文件的顶部,其中定义了自定义字段.但这没效果.
简单回答:是的,代码应该放在定义字段的models.py文件中.正确的代码是:
from south.modelsinspector import add_introspection_rules
add_introspection_rules([], ["^myapp\.models\.ColorField"])
Run Code Online (Sandbox Code Playgroud)
不知道为什么我把项目名称放在那里.
| 归档时间: |
|
| 查看次数: |
2282 次 |
| 最近记录: |