Общие поля для разных моделей django в одном месте

#django

Вопрос:

У меня есть несколько столбцов, которые повторяются в нескольких моделях. есть ли какое-нибудь решение разместить их где-нибудь и использовать в любой модели?

Ответ №1:

Вы можете достичь этого, создав базовые классы и наследовав их в своих моделях.

Пример:

 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)  

Комментарии:

1. ДА. это то, что мне нужно.