Django - 在模板中转义引号

时间:2012-12-24 07:44:12

标签: html django

我正在尝试创建一个包含代表联系人的数据行的表 - 一组人和公司联系人。我希望每一行都是“可点击的”,以便在点击时,提取该联系人的表单进行编辑。要做到这一点,我有这样的事情:

<tr onclick="window.location.href='{% url my.django.view %}'">...

你会注意到上面有两个级别的引号:一个双“等于之后,然后一个'来封装django模板标签。有两种类型的联系人:公司和人。我有我的{{设置为处理此问题,使用以下内容:

urls.py

所以,有了上述内容,我有两个新联系人的网址(由{C = Company的(r'^contact-details/(?P<cType>C)/(?P<cid>N)/$', contact_details), (r'^contact-details/(?P<cType>P)/(?P<cid>N)/$', contact_details), (r'^contact-details/(?P<cType>C)/(?P<cid>.*)/$', contact_details), (r'^contact-details/(?P<cType>P)/(?P<cid>.*)/$', contact_details), 或P = Person的cType区分),然后是另外两个现有联系人的网址(使用{{ 1}}表示记录的主键。

列在所有联系人列表中的行中的链接如下所示:

cType

我遇到的问题是我无法将“P”或“C”传入链接,因为它会导致第三级引号,从而将所有引号分开。我只是不知道如何在P或C附近逃脱第三级报价。

有什么想法吗?

2 个答案:

答案 0 :(得分:7)

你可以在“P”周围使用双引号,因为Django {%转义会阻止嵌入的双引号关闭HTML属性的引号。

<tr onclick="window.location.href='{% url cpm.contacts.views.contact_details "P" c.pk %}'">

答案 1 :(得分:-2)

也许只是创建一个简单的jQuery / JS方法来改变窗口位置并将其放在一个单独的JS文件中?

function change_location(location){
    window.location = location;
}

并使用它:

<tr onclick="change_location({% url cpm.contacts.views.contact_details 'P' c.pk %});">