2012-12-29 47 views
0

我正在開發我的第一個Django項目。我需要顯示包含一對多數據庫關係的雙方的複合頁面。試圖儘可能成爲Django-y,我考慮了(基於類的)通用視圖。由於沒有任何內置的通用視圖有類似的東西,我使用SingleObjectMixinMultipleObjectMixin攻擊了一個複合泛型視圖,這也意味着我必須擴展基類View類。Django中的複合泛型視圖?

回想起來,對於某些(在我看來)應該是相當微不足道的東西來說,這似乎有很多工作,並且我認爲我錯誤地解決了這個問題。所以我轉向SO社區尋求幫助:

  • 什麼是這個問題的正確解決方案?
  • 你會如何去解決這個問題?

謝謝!

+0

我不知道爲什麼你不能使用' DetailView',然後迭代關係的許多方面(通過'object.relationship.all()')。如果你需要通過許多側面物體分頁,它會變得很煩瑣;你可以使用'ListView'和'SingleObjectMixin'來完成它(Django的開發文檔中有說明)(https://docs.djangoproject.com/en/1.5/topics/class-based-views/mixins/#使用-singleobjectmixin與 - 列表視圖))。沒有關於你想要達到什麼的更多細節,很難知道我可能會如何攻擊這個問題:-) –

+0

@JamesAylett其實,我一直在尋找與文檔中展示的完全相同的東西。現在我只需要檢查它是否在1.4中工作。我覺得很蠢,以至於我以前沒有找到那個文檔! – GZaidman

+0

應該在1.4中正常工作,因爲它基於我在發佈的網站上完成的工作,當時我寫了原始草稿:-)總是很好檢查,但... –

回答

0

我會簡單地使用DetailView(使用SingleObjectMixin),並通過其訪問屬性訪問相關對象的實例模板:

<h2>Main Object</h2> 
<p>{{ object.some_field }}</p> 
<h2>Related Object</h2> 
{% with related=object.related_whatever %} 
    <p>{{ related.some_field }}</p> 
    <p>{{ related.other_fied }}</p> 
{% endwith %}