2016-09-03 15 views
0

ユーザー登録とログインにdjango登録(the app、HMAC)を使用しました。すべて正常に動作しますが、/ accounts/login /の代わりにhttp://localhost:8000/というログインフォームを使用したいと考えています。これを達成する最もクリーンな方法は何でしょうか?Django登録カスタムURL

メインページのビューを提供するlogin.htmlからindex.htmlファイルにフォームをコピーすると、(明らかに(?))は機能しません。私はdjango 1.9.6とdjango-registration 2.1を使用しています。私は、settings.pyファイルのINSTALLED_APPSに「登録」を持っていないことに注意してください。

これは私のlogin.htmlとファイルです:

{% extends "mysite/base.html" %} 
{% load i18n %} 

{% block content %} 
<form method="post" action="."> 
    {% csrf_token %} 
    {{ form.as_p }} 

    <input type="submit" value="{% trans 'Log in' %}" /> 
    <input type="hidden" name="next" value="{{next}}" /> 
</form> 

<p>{% trans "Forgot password" %}? <a href="{% url 'auth_password_reset' %}">{% trans "Reset it" %}</a>!</p> 
<p>{% trans "Not member" %}? <a href="{% url 'registration_register' %}">{% trans "Register" %}</a>!</p> 
{% endblock %} 

そして、私のurls.pyファイル:

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

urlpatterns = [ 
    url(r'^admin/', admin.site.urls), 
    url(r'^$', views.index, name='index'), 
    url(r'^accounts/', include('registration.backends.hmac.urls')), 
    url(r'^groups/', include('groups.urls')), #my own app 
] 

答えて

0

はそれを行うにはいくつかの方法をtheresの、そしてそれは本当にあなたが気にするかどうかに依存しますリダイレクト、およびURL構造の整理方法について説明します。私はこのようなものだろう

:django.conf.urlsインポートから

は、からdjango.contribインポート管理 からURL が含まれます。インポートビュー フォームregistration.backends.hmac.views輸入ログイン

urlpatterns = [ 
    url(r'^admin/', admin.site.urls), 
    url(r'^$', views.index, name='index'), 
    url(r'^accounts/login$', RedirectView.as_view(url='/login'), name='got-to-lgoin') # You have several options for this, see below 
    url(r'^accounts/', include('registration.backends.hmac.urls')), 
    url(r'^login/$, login, name='login'), 
    url(r'^groups/', include('groups.urls')), #my own app 
] 

は今二ログインURLごとに、あなたは、hmac.urlsから削除/ログインにリダイレクトするように変更し、新しい習慣を作ることができますurlsファイルを作成し、それをインクルードするか、または私がやったことを行い、リダイレクトビューを追加するだけです。

私は個人的な好みを言ったように。もしあなたが/ loginと/ logout以外のもっと多くのURLのためにそれをやろうとしたら、私は別のurls.pyファイルを作り、それを含めます。清潔です。

希望すると便利です。

+0

ありがとうございました!しかし、それは動作していません、それはImportErrorを与えます: 'from registration.backends.hmac.views import login'で" name loginをインポートできません "。そこには2つのビュー[登録ビューとアクティベーションビュー](https://django-registration.readthedocs.io/en/latest/hmac.html#views)しかないようです。あなたはこれを解決するために何を提案しますか? –

関連する問題