我有一個抽象模型組,有2個孩子公司和債券(我簡化了我的例子)。由於我的模型WorkRelation,這些孩子與聯繫人連接。我想編寫一個函數get_number_of_contacts(),它返回通過對象WorkRelation與一個組連接的用戶數量。獲取記錄數
這非常困難,因爲我使用泛型外鍵。這種方法甚至可以實現這種方法嗎?
這是我的簡化models.py:
class Group(BaseModel):
name = models.CharField(max_length=30, unique=True)
*** a lot more attributes ***
---> def get_number_of_contacts(self):
return 69
class Meta:
abstract = True
class Company(Group):
def __str__(self):
return "Company " + self.name
class Meta:
app_label = 'groups'
class Bond(Group):
def __str__(self):
return "Bond " + self.name
class Meta:
app_label = 'groups'
class WorkRelation(BaseModel):
contact = models.OneToOneField(Contact, on_delete=models.CASCADE, primary_key=Tru)
group_type = models.ForeignKey(ContentType)
group_id = models.PositiveIntegerField()
group = GenericForeignKey('group_type', 'group_id')
*** A lot more attributes ***
我不確定我完全理解你的問題,但你試圖獲得組中總人數,這對我來說聽起來像你可以做Group.objects.get(Group.user)。 count()'甚至是'Group.objects.all()。count()'? – qasimalbaqali
是的,我正在嘗試獲取與羣組相關聯的人數。但問題是聯繫人通過一個對象WorkRelation進行連接。 – hY8vVpf3tyR57Xib