目前正在尝试使一个社会应用程序。我创建了两个应用程序主要和职位。我的职位应用程序将处理所有功能的创建,删除一个职位,职位列表。我的主要应用程序是我的主页,将显示所有职位,例如类似于Facebook的主页。
主应用程序目前验证用户和什么不.我创建了我的帖子应用程序的视图和模板,我现在想把它包括在主的应用程序主页.不知道如何去做这件事.不要求任何人写了代码,但至少给予了一个如何实现这一点的结构.
App的基本结构:
--Main_app
--_views.py
--templates
--home.html
--posts_app
--_views.py
--templates
--posts.html
我的posts_app视图当前包含的文件之一是:
def posts_list(request):
# return HttpResponse("<h1> List a posts. </h1>")
render(requests, "posts.html", {})
templates/posts.html包含以下文件:
<!DOCTYPE html>
<html lang="en">
<body>
<h1>Posts template is working</h1>
</body>
</html>
在我的main_app templates/HTML中:
{% if user.is_authenticated %}
<h1>Homepage</h1>
<!-- Posts template -->
{% include "posts/templates/posts.html" %}
{% endif %}
这是有意义的,我当时只是从帖子应用程序导入模板到主应用程序,它会工作.没有明显的工作,所以我做了一点研究,找不到一个明确的解决方案,是不是有所谓的模板继承,应该导入我的意见从帖子到主.我不确定.
4条答案
按热度按时间wwodge7n1#
最好的方法是在项目目录中添加一个模板,而不是在应用程序中,如果你想使用相同的模板。
在设置中添加,
在视图中,您可以直接引用它,如
template_name.html
另一种方法是在目录中创建模板,如
现在,您可以通过引用
Main_app\mytemplate.html
来使用它第一个在这种情况下非常有效。
lymnna712#
你可以做的是把你的模板文件夹放在你的项目目录的根目录下。
你能做到
在你看来,你可以这样做:
9vw9lbht3#
最好在你的根项目文件夹中创建一个单独的
templates
目录。这样你就可以在任何你想要的应用中访问html文件。你的目录结构看起来像这样:This is a simple blog I made using Django
如果你需要推荐信的话可能会有帮助。
x6h2sr284#
至于通过不同的应用程序交叉加载模板,我建议将您的项目结构化,使
templates
成为一个单独的目录,这将在两个方面为您带来好处:1.以后将前端与后端完全分离会更容易。
1.它将增加模块性,因为它将减少应用程序之间的耦合。
模板控制器示例:
等等。
要在其他模板中加载模板,您只需:
编程愉快。