我正在尝试创建一个包含代表联系人的数据行的表 - 一组人和公司联系人。我希望每一行都是“可点击的”,以便在点击时,提取该联系人的表单进行编辑。要做到这一点,我有这样的事情:
<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附近逃脱第三级报价。
有什么想法吗?
答案 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 %});">