跨关系的django查找-如何
我有一个地址模型,其中包含联系人模型的外键:跨关系的django查找-如何,django,django-models,Django,Django Models,我有一个地址模型,其中包含联系人模型的外键: class Address(models.Model): street = models.CharField(max_length=25) postal_code = models.CharField(max_length=25) city = models.CharField(max_length=50) country = models.CharField(max_length=50) contact =
class Address(models.Model):
street = models.CharField(max_length=25)
postal_code = models.CharField(max_length=25)
city = models.CharField(max_length=50)
country = models.CharField(max_length=50)
contact = models.ForeignKey(Contact, related_name='address to contact')
class Contact(models.Model):
salutation = models.CharField(max_length=1, choices=salutation_choices, verbose_name="salutation")
title = models.ForeignKey(Title, blank=True, null=True)
...
现在,我想根据地址对象中的数据筛选联系人对象。
因此,我想创建一个跨越关系的过滤器,遵循文档的这一部分:
我这样试过:
result_set = Contact.objects.filter(address__street__contains='mystreet')
我收到以下错误消息:
Cannot resolve keyword 'address' into field. Choices are: address to contact, birthdate..
实际上,错误消息告诉我有一个要联系的字段地址,但问题是我如何引用它?您已将联系人上的
相关名称设置为要联系的地址。这是Django用于从Contact到Address的向后关系的值——因为这不是一个有效的属性名,所以我很惊讶它居然能工作
删除此属性,您的查找将正常。您已将联系人上的相关名称设置为联系人地址。这是Django用于从Contact到Address的向后关系的值——因为这不是一个有效的属性名,所以我很惊讶它居然能工作
删除此属性,您的查找将正常工作