Как я могу установить какое-либо значение для поля унаследованного класса модели в модели Django? - PullRequest
0 голосов
/ 18 июня 2020

Я сделал одну модель (ModelA), в которой представлены 2 варианта, я наследую эту модель, в двух других моделях

CHOICES = (("work", "work"), ("Home", "Home"))
class ModelA(models.Model):
    type_of_address = models.CharField(choices=CHOICES)
    ...

class ForWorkModel(ModelA):
    type_of_address--->work

class ForHomeModel(ModelA):
    type_of_address--->Home

Я хочу унаследовать модель и хочу установить некоторые значения полей , как я уже упоминал в коде. Есть ли способ?

1 Ответ

0 голосов
/ 18 июня 2020

Вы можете добавить индивидуальное сохранение для каждой из отдельных моделей, чтобы установить желаемую строку:

class ForWorkModel(ModelA):

    def save(self, *args, **kwargs):
        if not self.pk: # only change if the object is new
            self.type_of_address = "work"  # or CHOICES[0][0]
        super().save(*args, **kwargs)

или, я не уверен на 100%, но это может сработать:

class ModelA(models.Model):

    type_of_address = models.CharField(choices=CHOICES, default=cls.get_default_address)

class ForWorkModel(ModelA):
    def get_default_address():
        return "work"
...