Жестко закодируйте значение поля модели дочернего класса, чтобы оно было = значению поля в его родителе
В модели 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