3

我正在尝试创建一个表,其中包含代表联系人的数据行 - 人员和公司联系人的混合。我希望每一行都是“可点击的”,这样当点击时,该联系人的表单就会被拉出来进行编辑。为此,我有这样的事情:

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

你会注意到上面有两层引号:等号后的双引号,然后是封装 django 模板标签的单引号。有两种类型的联系人:公司和人员。我有我的urls.py设置来处理这个,具有以下内容:

(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),

因此,通过上述内容,我有两个新联系人的 url(由cTypeC=Company 或cTypeP=Person 区分),然后是现有联系人的另外两个 url(cid用于记录的主键)。

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

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

我遇到的问题是我无法将“P”或“C”传递到链接中,因为它会导致第三级引号,从而将引号全部断开。我只是不知道如何避开 P 或 C 周围的第三级引号。

有任何想法吗?

4

2 回答 2

10

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

<tr onclick="window.location.href='{% url cpm.contacts.views.contact_details "P" c.pk %}'">
于 2012-12-24T07:51:35.113 回答
-2

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

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

并像这样使用它:

<tr onclick="change_location({% url cpm.contacts.views.contact_details 'P' c.pk %});">
于 2012-12-24T07:48:39.017 回答