3

連絡先を表すデータの行を持つテーブルを作成しようとしています - 人と会社の連絡先が混在しています。クリックすると、その連絡先のフォームが編集のためにプルアップされるように、各行を「クリック可能」にする必要があります。そのために、私は次のようなものを持っています:

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

上記には 2 つのレベルの引用符があることに気付くでしょう。等号の後の二重の " と、django テンプレート タグをカプセル化するための単一の ' です。連絡先には、会社と人という 2 つのタイプがあります。これ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),

したがって、上記の場合、新しい連絡先の 2 つの URL ( cTypeC=Company またはcTypeP=Person で区別) と、既存の連絡先の 2 つの URL (cidレコードの主キーに使用) があります。

すべての連絡先をリストするテーブルの行に埋め込まれたリンクは、次のようになります。

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

私が抱えている問題は、「P」または「C」をリンクに渡すことができないことです。これは、第 3 レベルの引用符が発生し、引用符がすべて壊れてしまうためです。PまたはCの周りの第3レベルの引用符をエスケープする方法がわかりません.

何か案は?

4

2 に答える 2

10

Django{%エスケープにより、埋め込まれた二重引用符が HTML 属性の引用符を閉じることができないため、「P」を二重引用符で囲むことができます。

<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 に答える