Hi,
Need a slight justification on your case what exactly is the use case you 
need to resolve.
So far, I understood you need to know details about unpaid bills, 

Approach 1:- 
Model bill_payment_history will have data for field date_paid in case of 
only paid bills, so you can try 
to query something like

queryset= bill_payment_history.objects.filter(date_paid= None)

Approach 2:- 
You can annotate a field on all known_bills object using case statement for
 which different between current date and excepted_due_date is already 
breached.

For annotate and case refer to below docs:-
https://docs.djangoproject.com/en/4.2/ref/models/conditional-expressions/

Hope this solve your use case

On Wednesday, 29 March 2023 at 07:26:58 UTC+5:30 lone...@gmail.com wrote:

> Hello all,
>
>     I am trying to use the query of:
> paid_bills = bill_payment_history.objects.filter(date_paid__year='2023', 
> date_paid__month='03')
>
> as criteria for another query to only show the unpaid bills.
>
> The known_bills model is my control list of known bills that occur 
> frequently.
> The  bill_payment_history model is my bill transaction table.  It is a 
> running history of transactions for bill payment.
>
> A sample of known_bills records is:
> bill_1
> bill_2
> bill_3
>
> A sample of  bill_payment_history is:
> bill_1 paid last month
> bill_2 paid last month
> bill_3 paid last month
> bill_1 paid this month
> bill_2 paid this month
> bill_3 paid this month
>
> What I am trying to do is use bill_payment_history filtered on date_paid 
> by year and month and query the known_bills table to see what bills have 
> not been paid yet.  I keep trying something similar to:  results = 
> paid_bills.exclude(short_description__in=known_bills)
>
> but my results either keep coming up with all of the records or none of 
> them.  What am I doing wrong?
>
> Here is the model information:
>
> class known_bills(models.Model):
>     #Full bank transaction
>     description = models.CharField(max_length=255)
>     #String value to search the CSV file with.
>     short_description = models.CharField(max_length=255, unique=True)
>     #Value I know it as.
>     friendly_name = models.CharField(max_length=255)
>     expected_due_date = models.DateField()
>     expected_cost = models.DecimalField(max_digits=6,decimal_places=2)
>
> class bill_payment_history(models.Model):
>     description = models.CharField(max_length=255)
>     short_description = models.ForeignKey(known_bills, 
> on_delete=models.CASCADE)
>     friendly_name = models.CharField(max_length=255)
>     date_paid = models.DateField()
>     cost = models.DecimalField(max_digits=6,decimal_places=2)
>
>     class Meta:
>         unique_together = (
>             ('short_description',
>             'date_paid'),
>             )
>

-- 
You received this message because you are subscribed to the Google Groups 
"Django users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to django-users+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/django-users/066fd675-7a0a-4ed0-834e-2f44c6786ecan%40googlegroups.com.

Reply via email to