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