У меня есть эти модели:Как вызвать метод суперкласса и вернуть реализацию подкласса?
from django.db import models
class Item(models.Model):
# ...
def __str__(self):
return 'item'
class SubItemA(Item):
# ...
def __str__(self):
return 'subitem_a'
class SubItemB(Item):
# ...
def __str__(self):
return 'subitem_b'
И я хочу, чтобы вызвать метод __str__ из каждого пункта в Item.object.all() и возвращать каждый реализации подкласса, но он возвращает только суперкласса реализации.
Пример:
for item in Item.object.all():
print(item.__str__())
В моей базе данных у меня есть два SubItemA и два SubItemB. Чем она возвращает:
item
item
item
item
Я хотел бы иметь некоторые вещи, как это:
subitem_a
subitem_a
subitem_b
subitem_b
Я потерял здесь.
с этим вы столкнетесь с большим количеством проблем. Чистым решением, не изобретая колесо, является использование чего-то вроде Django Polymorphic https://github.com/chrisglass/django_polymorphic – yedpodtrzitko
@yedpodtrzitko Спасибо! Он решил мою проблему как шарм! Пожалуйста, напишите ответ, чтобы я мог проголосовать за него. – rhemzo