2017-08-30 83 views
1

所以我目前正在學習使用Django在多個應用程序,我想知道如何正確分割的部分功能,同時仍然在主頁上顯示它。如何正確地呈現在主頁

例如,我想報頭+導航,日曆和最近的博客文章在主索引頁上。
在查看文章頁面上,例如,我會爲標題+導航,日曆以及帶評論部分的單個文章。

現在閱讀教程,如果我正確地理解他們,我會同時用核心應用程序一起膠合它分割在頭應用程序的功能,日曆應用程序和博客應用本身。

但我不明白的是如何在主應用程序中呈現應用程序/其他視圖。我發現的所有方式只是自己指定模板,或者看起來很黑,顯然這似乎並不是常用的方法。

回答

0

所以這裏還有多個視圖的工作:要顯示

2,認爲將呈現頁面

1.意見,顯示所有的意見(讓我們稱之爲這個「主視圖」。

的第一步是導入所有的其他視圖/模型成主視圖駐留在views.py文件。

from blog.models import Post 
from calendar.models import Calendar 

現在你ç編輯你的主視圖來訪問這些數據。例如:

class Mainview(TemplateView): 
    template_name = 'app/homepage.html' 

    def get_context_data(self, **kwargs): 
     #This will only show the latest post 
     data['posts'] = Post.objects.all().order_by('-id')[:1] 
     data['calendar'] = Calendar.objects.all() 
     return data 

現在你可以使用{{}}標籤,例如存取權限從其他應用程序中的數據在你的模板 - 你可以做這樣的事情:

{% for post object in post %} 
    {{ post.title }} 
    {{ post.content}} 
{% endfor %}