2010-07-24 3 views
1

예를 들어 두 개의 모델 객체 Person과 Address가 있습니다. 주소에는 개인 ID에 대한 참조가 있습니다. 하나의 객체로 그들을 끌어 내거나 Django로 할 수없는 쿼리는 어떻게 생겼을까요?Django의 모델 유형을 하나의 객체로 결합 할 수 있습니까?

+0

이 질문은 너무 애매합니다. 자세한 내용을 제공하십시오. – joel3000

+0

아래의 답변과 의견은 필요한 모든 세부 정보를 제공합니다. 그의 샘플 코드는 정확히 내가 가지고있는 것이지만, 그의 해결책은 충분하지 않다. 왜냐하면 나는 반대 방향이 필요하기 때문이다. – Rhubarb

+1

질문을 편집하여 사람들이 묻고 자하는 것을 추측 할 필요없이 더 명확한 답을 얻을 수 있습니다. –

답변

1

Django docs on related objects을 읽으십시오. 사람에서 관련 주소로 이동하는 것은 예제에서 Blog에서 관련 항목으로 이동하는 것과 같습니다.

사람이있는 경우 person.address_set.all()하여 해당 사람의 모든 주소를 얻을 수 있습니다. 각 사람 는 하나의 주소가있는 경우

하는 OneToOneField을 사용하고, 당신은 주소를 얻을 수 person.address를 사용할 수 있습니다.

2

나는 당신이 물어 보려는 것이 정확히 무엇인지는 모르겠지만, 한 번 시도해 볼 것입니다. 나는거야

이 모델은 같은 모양 가정 :

address = Address.objects.get(id=address_id) 

는 그런 다음과 같이 사람을 참조 할 수 있습니다 :

address.person.first_name 
이제

class Person(models.Model) 
    first_name = models.CharField() 
    last_name = models.CharField() 

class Address(models.Model) 
    person = models.ForeignKey(Person) 
    street = models.CharField() 
    city = models.CharField() 
    state = models.CharField() 

를, 주소를 얻을

+0

맞아, 내 문제는 내가 그 주소를 모른다는거야, 나는 그 사람을 안다. 그래서 나는 그 사람의 주소를 찾아야하며, 아니면 그 사람의 주소를 참조 할 수 있어야한다. – Rhubarb

+1

그런 경우에 다음과 같이 할 수 있습니다. 주소 = Address.objects.all()는 필터 (사람 = 사람) 또는 당신은 단지 사람의 ID를 가지고있는 경우, 뭔가 같은 :.. 주소 = Address.objects.all()는 필터 (person__id = person_id) – ablerman

관련 문제