簡體   English   中英

打印一個有一個以上房屋的人的清單,每個房屋有一個以上電話號碼

[英]printing a list of persons with more than one home, each home with more than one phone number

我有一類人,可以有多個房屋,每個房屋有一個或多個電話號碼。

我已經定義了類,但是現在我試圖創建一個列出每個人的視圖,列出每個人的所有住所以及每個住所地址的所有電話號碼……例如:

john smith
123 fake str
  305-99-8877
  305-99-8876
321 oak road
  444-98-7654

peter guy
453 north ave...

到目前為止,我有這樣的事情:

(在我的views.py上)

def ViewAll(request):
  people = Person.objects.all()
  render_to_response('viewall.html', {'people': people})

(以及我的模板上)

{% for guy in people %} 
  {{ guy.name }}
  {% if person.home_address_set.all %}
    {{ home_address }}

    {% for ?????? in ???? %}
      #print phone numbers in each home
    {% endfor %}

  {% endif %}
{% endfor %}

關於如何寫我的想法不見了嗎? 當然,如果有另一種方式(更好,更優雅或更有效的方式)來做我需要的事情,我很想聽聽。

您似乎擁有三個嵌套的集合:“人”,“家”,“電話號碼”。

第1步-如何在視圖函數中編寫代碼?

for p in Person.objects.all():
    print "person", p
    for h in p.home_address_set.all():
         print " home", h
         for ph in h.phone_set.all():
             print "  phone", ph

不要忽略這一步。 如果您無法使其在視圖函數中工作,則您的模型是錯誤的。 花點時間把這部分做好。

步驟2-將其轉換為模板語法。

{% for p on people %}
    {% for h in p.home_address_set.all %}
        {% fpr ph in h.phone_set.all %}
        {% endfor %}
    {% endfor %}
{% endfor %} 

結果應與您的視圖功能相同。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM