Django:点击一个按钮加载另一个模板

时间:2015-01-09 16:05:04

标签: jquery python html django templates

我已经在django项目上工作了几个星期了,只是玩弄它以便我可以掌握它。我有点困惑。我有一个名为" home.html"的模板。我想知道我是否还有另一个名为" profile.html"的模板。要设置为home.html模板上的链接?我有一个按钮,点击后,应该直接带我到profile.html页面,但是当我正在研究这个主题时,我得到的答案很复杂。有些人声称要创建一个视图并使用javascript加载html,而其他人声称只需在标签中写入第二页模板的路径就更容易了。

完成这项工作的最正确方法是什么?

我查看了这个链接:Rendering another template from a button click in Django试图更好地理解,因为这是另一个最接近我要求的问题,但它更加困惑我,因为django术语有点让我难以理解为初学者。

提前感谢您提供的任何帮助。


编辑总结一下:我目前在主页上。有一个按钮显示"查看您的个人资料"。单击该按钮后,我想离开主页并拥有新页面" profile.html"要加载到屏幕上。

2 个答案:

答案 0 :(得分:4)

“最正确的方法”是创建将加载“profile.html”模板的视图。我建议使用通用TemplateView

将此行添加到 urls.py

from django.views.generic import TemplateView

urlpatterns = patterns('',
    url(r'^profile/', TemplateView.as_view(template_name='profile.html'),
                      name='profile'),
)

home.html 中使用此代码段:

<a href="{% url 'profile' %}">Profile</a>

答案 1 :(得分:2)

您也可以使用

而不是使用TemplateView
<a href="{% url 'profile' %}">View your profile</a>

在您的主页模板中。在项目的主要urls.py中,只需添加个人资料模板的网址。

url_patterns = [
        url(r'profile/',profile_view,name="profile")
]

在views.py中将一个函数定义为profile_view。 该链接将起作用:)