2017-08-30 68 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 %}