Я хотел бы переопределять не полные поля, а только те параметры, которые изменяются. Таким образом, если я решу сделать поле значка уникальным в будущем, мне придется изменить только родительский абстрактный класс, а не все дочерние модели.
Код: Выделить всё
# behaviors.py
from django.db import models
from colorfield.fields import ColorField
class Representable(models.Model):
color = ColorField(_("color in the app"), blank=True)
icon = models.CharField(_("icon in the app"), max_length=50, blank=True)
class Meta:
abstract = True
Код: Выделить всё
# models.py
from django.db import models
from .behaviors import Representable
class Item(Representable, models.Model):
name = models.CharField(_("name"), max_length=50, blank=False)
# color couldn't be blank
# icon couldn't be blank
class Meta:
verbose_name = _("item")
verbose_name_plural = _("items")
class Tag(Representable, models.Model):
name = models.CharField(_("name"), max_length=200, blank=False, unique=True)
# color default value shoud be #00AEC7 (but could be blank)
# icon default value shoud be mdi-label (but could be blank)
class Meta:
verbose_name = _("tag")
verbose_name_plural = _("tags")
Подробнее здесь: https://stackoverflow.com/questions/695 ... ld-options
Мобильная версия