如何在 django 模板中使用 href 属性

Posted

技术标签:

【中文标题】如何在 django 模板中使用 href 属性【英文标题】:how to use the href attribute in django templates 【发布时间】:2013-06-16 12:39:52 【问题描述】:

当我尝试在我的 Django 模板中使用从 /appname/index//appname/detail/### 的链接时,我正在访问 /appname/index/detail/### 这不是我想要的,所以我的应用程序找不到它当然在 urlconf 中。

首先是详细页面的 urls.py 行

url(r'detail/(?P<jobID>\d+)/$', 'appname.views.detail')

另外,根 urlconf

urlpatterns = patterns('', 
    url(r'^appname/', include('appname.urls')),
    url(r'^admin/', include(admin.site.urls)),
)

接下来是试图到达那里的模板代码

% for job in jobList %
    <a href="detail/ job.id /"> job.name </a>

我不确定还有哪些适用的信息,请问您是否想查看其他信息。我也试过了:

<a href="% url 'appname.views.detail' %/ job.id "> job.name </a>

但这也没有用。提前感谢您的帮助。

【问题讨论】:

root ulrconf 是如何定义的?将 URL 前缀添加到 /detail... 那么你需要/appname/detail/job_id/ 检查@Aamir 的第二个答案。那应该有效 @karthikr 成功了,感谢您的帮助 【参考方案1】:

href的开头添加/

<a href="/appname/detail/ job.id /"> job.name </a>

要使url 标签起作用,您需要这样做:

<a href="% url 'appname.views.detail' jobID=job.id %"> job.name </a>

【讨论】:

这两种方法都为我提供了与以前相同的目标 URL 如何在主 urlconf 文件中包含 appname url?【参考方案2】:

根据我的经验,只要您在urls.py 中定义了href 标签应该指向的页面的url,请包括以下格式的绝对路径。

Site name: yyyy.com
Url of page to redirect to in urls.py: yyyy.com/signup/

Sample link: <a href="/signup/">Signup</a>

您会注意到,href 标记内的内容有点附加到当前 url。对于更多动态链接,您可以使用一些 python 作为 DTL 指南。

【讨论】:

【参考方案3】:

假设你在

myapp/detail

你想去页面

 myapp/anything

你应该这样做

<a href="../anything">Page</a>

【讨论】:

以上是关于如何在 django 模板中使用 href 属性的主要内容,如果未能解决你的问题,请参考以下文章

Django模板如何用一个变量查找字典值

干货福利:如何使用Python中Django模板?

在 Django 模板中,如何指定本身就是属性的字典键?

如何访问 django 模板中的 django ManyToManyField

使用更改 django 模板中表单字段的名称属性

如何将参数传递给Django中模板变量的方法?