Жестко закодируйте значение поля модели дочернего класса, чтобы оно было = значению поля в его родителе

В модели Django я хотел бы заставить поле дочернего класса иметь фиксированное значение, унаследованное от поля его родителя.

Например:

from django.db import models

class Entity(models.Model):
    class Type(models.TextChoices):
        Natural = ("Natural", "natural")
        Juridical = ("Juridical", "juridical")

    entity_type = models.CharField(
        max_length=9,
        choices=Type.choices,
        default=Type.Natural,
    )

class Person(Entity):
    person_type = Entity.Type.Natural # <--- forcing it to be 'Natural' from parent class
    ...

Я хочу создать такое поле person_type и заставить его значение быть 'Natural' для каждого объекта person, созданного с помощью класса Person. Затем это поле может отображаться в админке, но у пользователя не должно быть никакой возможности его изменить. То же самое в БД, в идеале.

Я не нашел ничего, что относилось бы к этой идее в документации: https://docs.djangoproject.com/en/4.1/ref/models/fields/ и я не могу применить этот ответ для установки значения поля person_type: https://stackoverflow.com/a/68113461/6630397

Вернуться на верх