Можно ли это сделать с помощью метода django __str__? - PullRequest
0 голосов
/ 26 октября 2018

У меня есть 2 модели с иностранным ключом для модели

class MyModel(models.Model):
    description = models.CharField(max_length=50)
    type = models.CharField(max_length=10)
    def __str__(self):
        return self.description

class Model1(models.Model):
    mymodel = models.ForeignKey(MyModel)

class Model2(models.Model):
    mymodel = model.ForeignKey(MyModel)

В выпадающем списке в админке для поля mymodel метод str возвращает описание MyModel Как мнеизмените то, что возвращается для каждой модели Model1, Model2, например, в методе str , чтобы вернуть 'type', если модель Model2, или 'description', если model1 Model.

В основном я спрашиваю, как условно вернуть «тип» или «описание» в MyModel

1 Ответ

0 голосов
/ 26 октября 2018

Лично мне не нравится это решение.

ForeignKey представляет отношение многие к одному.И вы хотите достичь его в обратном порядке.

class MyModel(models.Model):
    description = models.CharField(max_length=50)
    type = models.CharField(max_length=10)
    def __str__(self):
        if self.model1_set.exists():
            return self.type
        if self.model2_set.exists():
            return self.description
        # What to return if both exists or none of them?
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...