У меня есть 3 модели, одна из которых является абстрактным суперклассом и две из которых являются подклассами, если этот суперкласс.
Я пытаюсь реализовать простой метод str на модели, но независимо от реализации он выдает мне эту ошибку:
TypeError: __str__ returned non-string (type NoneType)
Вот мои модели:
class DemandBase(models.Model):
demand = models.FloatField(blank=True, null=True)
building = models.ForeignKey(Building, on_delete=models.CASCADE)
class Meta:
abstract = True
class DemandHeat(DemandBase):
def __str__(self):
return str(self.id)
class DemandCool(DemandBase):
def __str__(self):
return str(self.id)
Хорошо, поэтому я попытался разыграть его, как в примере выше, но безуспешно попробовал также следующее:
return "This is an example {}".format(self.demand)
и это
return f"This is an example {self.demand}"
и это:
return "this is a string"
Все эти альтернативы работают на нормальных моделях, но здесь это не так, поэтому я предполагаю, что это связано с наследованием или абстракцией класса .....
Любая помощь или советы очень ценятся.Заранее спасибо!
РЕДАКТИРОВАТЬ: я также получаю эту ошибку, когда я пытаюсь создать новую BuildingGroup в администраторе.У этого также есть ForeignKey к зданиям как m2m отношение.Модель выглядит так:
class BuildingGroup(models.Model):
description = models.CharField(max_length=500, null=True, blank=True)
project = models.ForeignKey(Project, on_delete=models.CASCADE)
buildings = models.ManyToManyField(Building, default=None, blank=True)
def __str__(self):
return self.description