1

App Engine で Django を使用している URL に問題があります。

HTML:

<li>Welcome {{ user.first_name }}</li>
<li><a href="logout/">Logout</a></li>

urls.py

    from django.conf.urls import patterns, include, url
from django.contrib import admin
from home import views
from registration import views

admin.autodiscover()

urlpatterns = [
    url(r'^admin/', include(admin.site.urls)),
    url(r'^$', 'home.views.index', name='home'),
    url(r'^login/$', 'registration.views.login_view', name='login'),
    url(r'^register/$', 'registration.views.coach_register', name='coach_register'),
    url(r'^activate/$', 'registration.views.activate', name='activate'),
    url(r'^logout/$','registration.views.logout_view', name='logout'),

]

何が起こっているかというと、ホームページ以外のページ (つまり、「登録」) からログアウトをクリックすると、ログアウト ビューの URL として存在しない URL「登録/ログアウト/」が検索されます。ただ「ログアウト/」

ログアウトURLをに設定するようにurlconfを変更してみました

url(r'^register/logout/$' ...)

ただし、URLに「register/」だけが含まれていない他のページでボタンを使用しようとすると、これも失敗します。

この問題を解決する方法はわかりませんが、単純であるように思えます。これらを処理することに関して、私は何を知らないのですか?

4

1 に答える 1

0

App Engine / Django によって示される動作は予期されるものです。テンプレートで相対 URL を使用しました。したがって、/register/ で Web ページを表示している場合、上記のリンクは '/register/logout/' を指します。同様に、/activate/ ページの場合、リンクは '/activate/logout/' になります。

ソリューション?「/logout/」などの絶対 URL を使用する

于 2015-08-28T01:58:03.173 に答える