У меня есть абстрактная модель группы, с 2 детьми Company и Bond (я упростил свой пример). Эти дети связаны с контактами благодаря моей модели 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