Общие поля для различных моделей django в одном месте
У меня есть несколько столбцов, которые повторяются в нескольких моделях. есть ли какое-нибудь решение, чтобы разместить их где-нибудь и использовать в любой модели?
Вы можете достичь этого, создавая базовые классы и наследуя их в своих моделях.
Пример:
class TimestampsModel(models.Model):
@classmethod
def get_fields(cls, fields: tuple):
return fields.__add__(('created_at', 'updated_at'))
created_at = models.DateTimeField(("created_at"), auto_now_add=True)
updated_at = models.DateTimeField(("updated_at"), auto_now=True)
Вы также можете сделать его абстрактным, и Django не будет создавать миграции для этого.
class Meta:
abstract = True
Наконец, модель может быть следующей:
class Blog(baseModels.TimestampsModel):
class Meta:
db_table = "blog"
title = models.CharField(max_length=100)