2010-01-05 29 views
0

有它有一個ForeignKey到接觸模型的地址型號:Django的查找 - 我如何

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) 
    ... 

現在我想根據從地址對象數據過濾我的聯繫對象。 因此,我想創建跨越的關係的過濾器,繼實況的這一部分:

lookup that span relationship

我想它是這樣的:

result_set = Contact.objects.filter(address__street__contains='mystreet') 

我收到以下錯誤消息:

Cannot resolve keyword 'address' into field. Choices are: address to contact, birthdate.. 

其實錯誤消息告訴我,有一個字段地址聯繫,但問題是我怎麼能參考嗎?

回答

4

你設置聯繫related_nameaddress to contact。這是Django使用從聯繫向後相對地址的值 - 因爲這不是一個有效的屬性名稱,我很驚訝,它在所有工作。

刪除此屬性,你的查詢應該工作。

+0

哦,我的上帝。非常感謝。我刪除它,它現在起作用了! – 2010-01-05 09:08:40