加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

向Django添加简单自定义字段 – 如何编写南方自省规则

发布时间:2020-12-16 23:44:01 所属栏目:Python 来源:网络整理
导读:我正在尝试将自定义字段添加到使用 South的Django项目中.因此,我正在尝试(第一次)编写 introspection rules for South.我相信我的案例是最简单的,因为我只是扩展了CharField.特别: class ColorField(models.CharField): def __init__(self,*args,**kwargs):
我正在尝试将自定义字段添加到使用 South的Django项目中.因此,我正在尝试(第一次)编写 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片段,供有兴趣的人使用.

由于我没有添加任何新属性,我相信我只需要添加以下代码行:

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文件的顶部,其中定义了自定义字段.但这没效果.

解决方法

简单回答:是的,代码应该放在定义字段的models.py文件中.正确的代码是:
from south.modelsinspector import add_introspection_rules
add_introspection_rules([],["^myapp.models.ColorField"])

不知道为什么我把项目名称放在那里.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读