0

템플릿의 한 부분 만 보내고 싶습니다.장고의 템플릿에 객체의 일부만 보내는 방법

내가 2 개 모델 아래와 같이 유무 :

class Person(models.Model): 
    name = models.CharField(max_legth=50) 
    sure_name = models.CharFiled(max_length=50) 

class Office(models.Model): 
    location = models.CharField(max_legth=50) 

와 나는 또한 다음과 같은 모델을 만들어 : 나는 PersonOffice.objects.all()로, 데이터베이스에서 데이터를 찍을 때, 지금

class PersonOffice(models.Model): 
    person = models.ForeignKey(Person) 
    office = models.ForeignKey(Office) 

를, 데이터는 같다 아래 :

{ 
    { 
     "pk": 0, 
     "person": { 
      "pk":0, 
      "name":"Harry", 
      "sure_name":"Potter" 
      }, 
     "office":{ 
      "pk":5, 
      "location":"Toronto" 
     } 
    }, 
    { 
     "pk": 1, 
     "person": { 
      "pk":6, 
      "name":"John", 
      "sure_name":"Kelly" 
      }, 
     "office":{ 
      "pk":6, 
      "location":"NewYork" 
     } 
    } 
} 

템플릿을 사무실에 보내고 싶습니다. render functi 에. 내가 어떻게 해? 덕분에 내가 {% for %} 루프 템플릿을 사용하려는 업데이트

. 예를 들면 :

{% for office in Offices %} 
    <p>Office location: {{ office.location }}</p> 
{% endfor %} 

나는 코드 아래 사용 :

offices = PersonOffice.objects.all().values('office') 
print(offices) 

을 아래 터미널에서 결과입니다

<QuerySet [{'office': 1}, {'office': 2}, {'office': 11}]> 
+2

당신이 현재 렌더링하고 위치를 표시하도록 views.py 파일을 게시 할 수 있습니까? – csling

+0

템플릿을 보내기 전에 개체를 직렬화하는 것 같습니다. 이유는 확실하지 않습니다. –

+0

. 나는 그들을 연재하지 않는다. 여기에 표시하는 좋은 방법은 json 형식과 같이 표시하는 것입니다. – msln

답변

1

당신은 values

PersonOffice.objects.values('office') 

이 의지를 사용할 수 있습니다와 함께 queryset 출력 각 개체에 대해

편집 :

PersonOffice.objects.values('office__location') 
+0

감사합니다. 질문을 변경했습니다. 'values ​​()'를 사용하여'{{office.location}} '과 같이 사용할 수 없습니다. 다른 방법이 있니? – msln

+0

네, 사용할 수 있습니다. 또한 값은 쿼리 세트를 출력합니다. 또한 내 편집을 참조하십시오. @msln –

+0

이 코드를 썼습니다 :'{사무실의 사무용 % %} {{office.location}}
{% endfor %}'하지만 출력하기 전에 렌더링을하기 전에 html 파일에 아무것도 표시하지 않습니다. – msln

관련 문제