I have 3 models:
class BillingNumbering(models.Model):
number = models.IntegerField()
date = models.DateField(default=now)
class Invoice(models.Model):
number = models.OneToOneField(BillingNumbering, on_delete=models.PROTECT)
created_at = models.DateTimeField(auto_now_add=True,
null=True, blank=True)
class DamageClaim(models.Model):
number = models.OneToOneField(BillingNumbering, on_delete=models.PROTECT)
created_at = models.DateTimeField(auto_now_add=True,
null=True, blank=True)
I want to query only those BillingNumbering objects that is connected to either Invoice or DamageClaim.
So if I have
<BillingNumbering: 1>- connected to invoice<BillingNumbering: 2>- connected to damage claim<BillingNumbering: 3>- connected to None whereinstance.invoiceorinstance.damageclaimwill result toObjectDoesNotExistError.
Then I only want to return <BillingNumbering: 1> and <BillingNumbering: 2> with BillingNumbering filter
UPDATED
The answer of WoodyG below gave me an idea. I was able to solve it with below:
from django.db.models import Q
qs = BillingNumbering.objects.filter(Q(damageclaim__isnull=False) | Q(invoice__isnull=False))