3

私のdjangoサイトのサイドバーにリンクがあり、テンプレートでは次のようになっています。

<li><a href="profile">Profile</a></li>

urls.py で:

url(r'^(?P<user_id>\d+)/profile/$', 'auth.views.show_profile', name='profile')

メインページから url: で /1001/profile/アクセスすると正常にロードされますが、別のサブページから url: でアクセスしようとすると/1001/forms/profile/、エラーが表示されます: The current URL, /1001/forms/profile/, did not match any of these. どうすればこれを修正できますか?

4

2 に答える 2

1

これは、「プロファイル」が相対URLであり、相対URLが現在のURLに追加されているためです。結果のアドレスは、サイト全体で有効ではありません。ケースでは絶対URLを使用する必要があるようです。

テンプレートでは、次のようなことを試すことができます。

<a href="/{{ request.user.id }}/profile/">Profile</a>

アップデート

テンプレートでリクエストを利用できるようにするには、django.core.context_processors.requestをTEMPLATE_CONTEXT_PROCESSORSに追加する必要があります。デフォルトで追加されているかどうかはわかりません。

于 2012-07-03T11:16:00.867 に答える
0

2 番目のサブページの URL を URL に追加する必要があります。/1001/profile/

url(r'^(?P<user_id>\d+)/form/profile/$', 'auth.views.show_profile', name='profile_form')

また、@Pauloが言及したようにコードを修正するか、逆URLを介して修正することもできます。

<a href="{% url profile request.use.id %}">Profile</a>
于 2012-07-03T11:24:56.827 に答える