说我在django中有一个地址(想想街道地址)模型,而该模型由工作(想想工作地点)和客户(想想邮寄地址)引用。
执行查询时,是否可以仅过滤没有引用的行?
模型
class Address(models.Model):
street = models.TextField()
suite = models.TextField()
city = models.TextField()
state = models.TextField()
county = models.TextField(default="")
country = models.TextField(default= "USA")
zip = models.TextField()
notes = models.TextField()
class Customer(models.Model ):
firstname = models.TextField(null=False)
lastname = models.TextField(blank=True)
address = models.ForeignKey(Address,null=True,blank=True,default=None)
class Job(models.Model):
number=models.IntegerField(null=False)
name=models.CharField(max_length=100,default="")
address = models.ForeignKey(Address,null=True)
所需功能
#get all addresses that don't have a job or customer referencing it
addresses = Address.objects.filter(job_set_count = 0, customer_set_count=0)
PS
这是使用“ OneToOne”关系的方案吗?
答案 0 :(得分:0)
尝试一下:
从django.db.models导入Q
addresses = Address.objects.filter(Q(job__isnull = True)&Q(customer__isnull = True))
答案 1 :(得分:0)
更改地址与客户的关系。 多个客户不可能有一个地址(根据您的地址模型类)。因此,您的模型之间的关系可以是其中之一