Добавление простого настраиваемого поля в Django — как написать правила самоанализа 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)

Это из фрагмента Django под названием поле модели выбора цвета jQuery для тех, кто заинтересован.

Поскольку я не добавляю никаких новых атрибутов, я считаю, что мне нужно добавить только эти строки кода:

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, где определено настраиваемое поле. Но это не сработало.

6
задан Erik 25 July 2012 в 03:36
поделиться