1

나는이 질문을 여러 번 전에 질문하지만 나는 여전히 그것을 해결할 수 없다는 것을 알고있다.장고 템플릿의 외래 키 관계

model.py

class Awb (models.Model): 
    awb_id = models.CharField(primary_key=True, max_length=50) 
    awb_shipment_date = models.DateTimeField() 
    awb_shipper = models.CharField(max_length=250) 
    awb_sender_contact = models.CharField(max_length= 50) 

class History (models.Model): 
    history_id = models.AutoField(primary_key=True) 
    awb = models.ForeignKey(Awb) 
    history_city_hub = models.CharField(max_length=250) 
    history_name_receiver = models.CharField(max_length=250) 

view.py

def awb_list_view(request): 
    data = {} 
    data['awb'] = Awb.objects.all() 
    data['history'] = History.objects.all() 
    return render(request, 'portal/awb-list.html', data) 

템플릿 내가 t으로 그것을 시도

{% for s in awb.history_set.all %} 
    {{ s.awb_id }} 
    {{ s.history_id }} 
{% endfor %} 

그의 코드는 템플릿에 결과가 없습니다. 나는 템플릿에 awb_id와 history_id를 보여주고 싶다. 당신이 나를 도울 수?

def awb_list_view(request): 
    data = {} 
    data['awb'] = Awb.objects.all() 
    data['history'] = History.objects.all() 
    return render(request, 'portal/awb-list.html', data) 

컨텍스트 사전

템플릿에 전달되는 우선의 뷰 코드를 살펴 보자

+0

안녕 벤츠, 먼저 awb 개체 ID의 도움으로보기 및 이후 검색 기록 ID에서 모든 레코드를 가져옵니다. 이력 ID를 발견하면 dict에 awb id와 history id를 key, value 형식으로 저장하고 render에 전달합니다. 템플릿에서 반복합니다. :) – Anup

답변

0

은 ... 키 'AWB'와 항목과 각각의 검색어 세트 Awb.objects.all()가 포함되어 있습니다.

이제

의 루프에 대한 템플릿을 살펴 보자 ...

{% for s in awb.history_set.all %} 

루프 템플릿 태그이 개방 역사 오브젝트의 역 세트를 생성하기 위해 노력하고있다. 이를 위해 단일 AWB 객체 인스턴스가 필요합니다. 대신 'awb'변수는 컨텍스트로 템플릿에 전달 된 QuerySet입니다.

이 코드의 목적은 모든 AWB 객체를 관련 History 객체와 함께 표시하는 것이므로 다음 템플릿 코드가 유효해야합니다.

{% for awb_obj in awb %} 
    {% for history_obj in awb_obj.history_set.all %} 
     {{ awb_obj.id }} 
     {{ history_obj.id }} 
    {% endfor %} 
{% endfor %} 
0

Awb.history_set.all은 하나의 Awb 개체에만 적용되며 쿼리 세트는 적용되지 않습니다.

이 작동합니다 :

data['awb'] = Awb.objects.first() # If the first one has history 

나 :

루프를 템플릿의 모든 AWB 오브젝트를 통해 각각의 history_set에 액세스 할 수 있습니다.

{% for a in awb %} 
    awb: {{ a.awb_id }}<br> 
    {% for h in a.history_set.all %} 
     history: {{ h.history_id }}<br> 
    {% endfor %} 
{% endfor %}