Tôi đang cố thêm trường tùy chỉnh vào dự án Django của mình sử dụng South. Bởi vì điều này, tôi đang cố gắng (lần đầu tiên) viết introspection rules for South. Tôi tin rằng trường hợp của tôi là đơn giản nhất có thể vì tôi chỉ đơn giản là mở rộng một CharField. Cụ thể:Thêm trường tùy chỉnh đơn giản vào Django - Cách viết quy tắc nội tại phía nam
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)
Đây là đoạn mã Django được gọi là jQuery color picker model field cho những người quan tâm.
Kể từ khi tôi không thêm bất kỳ thuộc tính mới, tôi tin rằng tôi chỉ cần thêm những dòng mã:
from south.modelsinspector import add_introspection_rules
add_introspection_rules([], ["^myproject\.myapp\.models\.ColorField"])
Nó có lẽ là hiển nhiên, nhưng nơi họ nên đi đâu? Ngoài ra, là giả định của tôi rằng đây là tất cả tôi phải làm đúng?
Tôi đã xem xét một số câu hỏi được đăng ở đây, nhưng hầu hết đều giải quyết được nhiều vấn đề phức tạp hơn.
Mỗi http://south.readthedocs.org/en/latest/customfields.html#where-to-put-the-code, tôi đã thử puttin mã ở đầu tệp models.py của tôi nơi trường tùy chỉnh được xác định. Nhưng điều này đã không làm việc.