Html 将模板导入Django中的基础模板
我希望能够显示Html 将模板导入Django中的基础模板,html,django,Html,Django,我希望能够显示base.html,其中包含我的gallery.html。我用开发者工具检查了源代码,在http://localhost:8000/gallery/ 注: 我的gallery应用程序中当前没有url.py。我的项目目录中只有一个url.py 项目的URL.py: from django.conf.urls import patterns, include, url from home.views import loadHomepage from gallery.views impo
base.html
,其中包含我的gallery.html
。我用开发者工具检查了源代码,在http://localhost:8000/gallery/
注:
我的gallery应用程序中当前没有url.py
。我的项目目录中只有一个url.py
项目的URL.py:
from django.conf.urls import patterns, include, url
from home.views import loadHomepage
from gallery.views import loadGallery
from django.contrib import admin
admin.autodiscover()
urlpatterns = patterns('',
url(r'^admin/', include(admin.site.urls)),
url(r'', 'home.views.loadHomepage'),
url(r'gallery/$', 'home.views.loadGallery'),
)
gallery app views.py:
from django.shortcuts import render_to_response
def loadGallery(request):
return render_to_response('gallery.html')
项目结构
/proj
/gallery
/static
/css
gallery.css
/templates
gallery.html
/proj
/templates
base.html
/static
/css
base.css
base.html:
{% load staticfiles %}
<body>
<div class="container">
<div class="home-button">
</div>
<div class="sidebar">
</div>
<div class="content-container">
{% block content %}
{% endblock %}
</div>
</div>
<!-- jQuery (necessary for Bootstrap's JavaScript plugins) -->
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
<!-- Include all compiled plugins (below), or include individual files as needed -->
<script src="http://netdna.bootstrapcdn.com/bootstrap/3.1.1/js/bootstrap.min.js"></script>
</body>
您需要在所有模板中
{%load staticfiles%}
,无论您是否从base.html继承(假设您在模板中使用静态文件)
您的url.py也应该类似于:
from django.conf.urls import patterns
from django.views.generic import TemplateView
urlpatterns = patterns('',
(r'^gallery/', TemplateView.as_view(template_name=gallery.html")),
)
我认为根本没有调用loadGallery视图。loadHomepage的前一个URL在正则表达式中没有任何开始/结束锚,因此它将捕获所有URL。Django的URL解析程序将简单地将所有内容路由到那里,而不会转到“gallery”URL 你应该做如下的事情:
url(r'^$', 'home.views.loadHomepage'),
url(r'^gallery/$', 'home.views.loadGallery'),
在这一点上,您将遇到gallery模板中的错误,例如,
扩展
标记的参数需要在引号中。问题在哪里?为什么要这样拆分模板?gallery是我的应用程序
,我认为这是为我组织的。此模板中有几个错误,因此,没有看到异常的事实表明,实际上根本没有渲染它。您应该发布您的URL和视图。@DanielRoseman jsut这样做了!谢谢你的建议!那么将{%extends base.html%}
和{%load staticfiles%}
添加到my gallery.html?是的……但我真的不明白为什么要加载这样的样式表。您可能应该在基本模板中为meta
或links
创建另一个block
,并使用block.super
将您的库样式表包含在该模板中。我是django的新手,所以有点困惑。你能提供一些例子吗?你更新了你的URL.py来显示模板了吗?我需要这样做吗?目前在我的项目my urls.py中,它包括url(r'gallery/$,'home.views.loadGallery'),
其中loadGallery
是一个简单的返回render\u to\u响应('gallery.html')
我修复了库模板报价问题,谢谢!然而,现在我得到了ViewDoesNotExist
错误。这是回溯,如果你感兴趣的话,那么视图是在home.views还是gallery.views?似乎应该是后者。我在主页
应用程序中创建了一个视图来生成^$
页面。“我的画廊”应用程序中还有另一个视图也做了同样的事情。两个render\u to\u响应都是的,因此您需要将URL指向正确的URL。我认为这个问题是因为当我转到/gallery/
时,render\u to\u响应('gallery.html')只生成gallery.html。但是my gallery.html扩展了base.html
(主视图)。所以我不明白为什么它甚至需要运行主视图。
from django.conf.urls import patterns
from django.views.generic import TemplateView
urlpatterns = patterns('',
(r'^gallery/', TemplateView.as_view(template_name=gallery.html")),
)
url(r'^$', 'home.views.loadHomepage'),
url(r'^gallery/$', 'home.views.loadGallery'),