我使用django-registration(the app,HMAC)进行用户注册和登录。一切正常,但我希望在http://localhost:8000/处使用登录表单,而不是/ accounts / login /。什么是最干净的方法来实现这一目标?
当只是将表单从login.html复制到我的index.html文件时,它提供了主页面的视图,它(显然(?))不起作用。我正在使用django 1.9.6和django-registration 2.1。请注意,我没有在setting.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 :(得分:0)
有几种方法可以做到这一点,这实际上取决于您是否关心重定向以及您希望如何组织URL结构。
我会做这样的事情:
来自django.conf.urls import include,url 来自django.contrib import admin 来自。导入视图 表单registration.backends.hmac.views import login
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中删除,将其更改为重定向到/ login,创建一个新的自定义URL文件并包含该文件,或者执行我所做的操作并添加重定向视图
像我说的那样个人喜好。如果您要为除了/ login和/ logout之外的更多网址执行此操作,我只需创建一个单独的urls.py文件并包含该文件。它更干净。希望这有帮助!