Общие поля для различных моделей 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)
Вернуться на верх