(這似乎是基於一個共同的問題「的問題,可能已經有你的答案」列表中,但這些都不幫我。)Django的 - InheritanceManager
我有一個 - 在管理覆蓋默認經理幾個具有多表繼承的模型。
在管理員(以及後來的前端應用程序)中,我需要列出基類中的所有內容,並且還能夠識別它們屬於哪個子類(或子類)。我想爲此使用Inheritance Manager。到目前爲止沒有運氣。
class Entry(models.Model):
name = models.CharField(max_length=200)
description = models.TextField(max_length=500)
uuid = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False)
slug = models.SlugField(unique=True)
objects = InheritanceManager()
def get_queryset(self, request):
qs = self.model.objects.get_queryset()
ordering = self.get_ordering(request)
if ordering:
qs = qs.order_by(*ordering)
return qs
def __str__ (self):
return self.name + " entry"
class Person(Entity):
first_name = models.CharField(max_length=100)
last_name = models.CharField(max_length=100)
def __str__ (self):
return self.name + " Person"
添加字符串「人」和「入口」是隻是一個測試。
實體列表只顯示Entry
,即使也是(實際上)一個人。
我希望能夠寫入Entry.__str__
東西,將顯示最後的子類。這樣,我能得到條目列表,看看:
Bob (Person)
ABC Co. (Organization)
Great Expectations (Book)
「self .__ class __.__ name__」是否有竅門? –
沒有。如果我正在查看所有條目的列表,則返回父類(Entry)。 –