Получение данных из внутренних моделей django

Я работаю над проектом, в прошлом я использовал sql запросы, но изменения в моделях django я использовал следующие модели для таблицы members

class Members(models.Model):
    name = models.CharField(max_length = 50)
    address = models.CharField(max_length = 50)
    phoneNo = models.CharField(unique=True, max_length = 50)
    created = models.DateTimeField(auto_now_add=True)
    update = models.DateTimeField(auto_now=True)

    def __str__(self):
        return self.name

для таблицы счетов

salesPerson = models.ForeignKey(User, on_delete = models.SET_NULL, null=True)
    purchasedPerson = models.ForeignKey(Members, on_delete = models.SET_NULL, null=True)
    cash = models.BooleanField(default=True)
    totalAmount = models.IntegerField()
    advance = models.IntegerField(null=True, blank=True)
    remarks = models.CharField(max_length = 200, null=True, blank=True)
    created = models.DateTimeField(auto_now_add=True)
    update = models.DateTimeField(auto_now=True)

    class Meta:
        ordering = ['-update', '-created']

У меня есть запрос, который является

credits = Bills.objects.all().filter(cash = False).values ('purchasedPerson').annotate(
        cnt = Count('purchasedPerson'),
        debit = Sum( 'totalAmount' ),
        credit = Sum( 'advance' ),
        balance = Sum( 'totalAmount' ) - Sum( 'advance' )
    ).order_by ('purchasedPerson')

получение вывода в виде

[{'purchasedPerson': 1, 'cnt': 2, 'debit': 23392, 'credit': 100, 'balance': 23292}, {'purchasedPerson': 2, 'cnt': 1, 'debit': 1280, 'credit': 0, 'balance': 1280}]

но мне нужно, чтобы во внешнем виде были указаны имя, адрес и номер телефона. как я могу получить их

?

Задайте все необходимые поля в .values(), например:

Bills.objects.filter(cash = False).values('purchasedPerson', 'name', 'address', 'phoneNo').annotate(...)

Другой вариант - пропустить часть .values():

Bills.objects.filter(cash = False).annotate(...)

Примечание: all() не требуется в вашем случае.

Вернуться на верх