django 自定义认证后台
最近想自定义User 结果找了此博客。
https://www.zmrenwu.com/post/50/#测试
在按照些操作的时候遇到了一些问题,记录下....
1、首先要在settings.py 添加参数
1 AUTH_USER_MODEL = 'system.User' 2 #system为APP的名名称,User 为Models.py的class名 3 4 AUTHENTICATION_BACKENDS = ( 5 'django.contrib.auth.backends.ModelBackend', 6 'system.backends.EmailBackend', 7 ) 8 9 LOGOUT_REDIRECT_URL = '/' # 在这里必须要设置要不然会跳转默认的后台 10 LOGIN_REDIRECT_URL = '/' 11 LOGIN_URL = '/system/login' #这里表示没有未登陆跳转的地址 12 13 EMAIL_BACKEND = 'django.core.mail.backends.console.EmailBackend' 14 15 STATIC_URL = '/system/static/' 16 17 STATIC_PATH = 'F:/django/web/system/templates/static'
2、添加相对应的模版(注:这里 是直接引用的admin的认证,所有模板中也引用到了默认的参数)
1 <form class="form" action="{% url 'login' %}" method="post"> 2 {% csrf_token %} 3 {{ form.non_field_errors }} 4 {% for field in form %} 5 {{ field.label_tag }} 6 {{ field }} 7 {{ field.errors }} 8 {% if field.help_text %} 9 <p class="help text-small text-muted">{{ field.help_text|safe }}</p> 10 {% endif %} 11 {% endfor %} 12 <button type="submit" class="btn btn-primary btn-block">登录</button> 13 <input type="hidden" name="next" value="{{ next }}"/> 14 </form>
3、models.py
1 from django.db import models 2 from django.contrib.auth.models import AbstractUser 3 4 5 class User(AbstractUser): 6 nickname = models.CharField(max_length=50, blank=True) 7 8 class Meta(AbstractUser.Meta): 9 pass
4、遇到的问题
错误一:提未jdango_sessions 表不存在 ;(删除文件夹migrations下的文件,然后执行python manage.py makemigrations python manage.py migrate python manage,py createsuperuser)
错误二:urls.py
#coding:utf-8 from django.conf.urls import url, include from django.contrib import admin from users import views urlpatterns = [ #url(r'^admin/', admin.site.urls), # 别忘记在顶部引入 include 函数 url(r'^users/', include('users.urls')), url(r'^users/', include('django.contrib.auth.urls')),#此处为此乃默认的地址 url(r'^$', views.index, name='index') ]
在模板直接引用
1 <form class="form" action="{% url 'login' %}" method="post"> //此处为引用默认的URL 2 {% csrf_token %} 3 {{ form.non_field_errors }} 4 {% for field in form %} 5 {{ field.label_tag }} 6 {{ field }} 7 {{ field.errors }} 8 {% if field.help_text %} 9 <p class="help text-small text-muted">{{ field.help_text|safe }}</p> 10 {% endif %} 11 {% endfor %} 12 <button type="submit" class="btn btn-primary btn-block">登录</button> 13 <input type="hidden" name="next" value="{{ next }}"/> 14 </form>
错误三:注册模板必须放在 templates\registration

浙公网安备 33010602011771号