В моей базе данных есть две модели, которые, если я не сделаю ничего «творческого», будут выглядеть примерно так:
class AbstractModel(models.Model):
uuid = models.UUIDField(default=uuid.uuid4)
class Meta:
abstract = True
class ModelA(AbstractModel):
name = models.CharField(max_length=128)
class ModelB(AbstractModel):
name = models.CharField(max_length=128, blank=True, null=True)
Единственная реальная разница между ModelA
и ModelB
что я хочу, чтобы свойство ModelA
name
было не обнуляемым, но записывая его так, особенно если учесть, что у меня есть около 10 различных полей для записи в почти одинаковой ситуации, я чувствую себя очень не DRY. Конечно, есть лучший / умный способ?
Обратите внимание, что речь не идет о проверке, поэтому перемещение проверки бланка в форму не решит проблему. Я хочу, чтобы столбец базы данных был NOT NULL
для ModelA
и NULL
для ModelB
.