Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class Worker(models.Model):
- name = models.CharField(max_length=255)
- class Invoice(models.Model):
- worker = models.ForeignKey(
- 'Worker', on_delete=models.CASCADE)
- amount = models.DecimalField(max_digits=10, decimal_places=2)
- from decimal import Decimal
- from django.test import TestCase
- from django.db.models import Sum
- from myapp.models import Worker, Invoice
- def get_payable_invoices():
- return Invoice.objects.filter(
- worker__in=Worker.objects.annotate(Sum('invoice__amount')))
- .filter(invoice__amount__sum__gt=0)
- class PayableInvoicesTests(TestCase):
- def test_get_payable_invoices(self):
- worker1 = Worker.objects.create(name="John Doe")
- invoice1 = Invoice.objects.create(
- worker=worker1, amount=Decimal('100.00'))
- invoice2 = Invoice.objects.create(
- worker=worker1, amount=Decimal('-150.00'))
- worker2 = Worker.objects.create(name="Mary Contrary")
- invoice3 = Invoice.objects.create(
- worker=worker2, amount=Decimal('200.00'))
- self.assertEqual(get_payable_invoices().count(), 1)
- self.assertEqual(get_payable_invoices().first(), invoice3)
- django.core.exceptions.FieldError: Cannot resolve keyword 'invoice' into field. Choices are: amount, id, worker, worker_id
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement