Получение данных из внутренних моделей 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()
не требуется в вашем случае.