第四百零六節,自定義用戶表類來繼承Django的用戶表類,

第四百零六節,自定義用戶表類來繼承Django的用戶表類,html

models.pypython

from django.db import models

# Create your models here.
from django.db import models
from django.contrib.auth.models import AbstractUser    # django自帶的用戶表類


class Userpro(AbstractUser):            # 繼承django自帶的用戶表類
    nick_name = models.CharField(max_length=50,verbose_name='暱稱',default='11')

    class Meta:
        verbose_name = '用戶表'
        verbose_name_plural = verbose_name

    def __str__(self):
        return self.username

settings.pydjango

AUTH_USER_MODEL = 'app1.Userpro'   # 設置用戶表類名稱,從app,類名稱

 

makemigrations  而後在輸入   migrate   來生成表app

 

用戶登陸和驗證post

#!/usr/bin/env python
# -*- coding:utf8 -*-
from django.shortcuts import render
from django.contrib.auth import authenticate,login   # django自帶用戶認證方法

def loging(request):
    if request.method == 'post':
        user = authenticate(username='用戶名', password='密碼')  # 只用於驗證用戶名和密碼是否正確
        # 驗證成功返回,用戶對象,失敗返回None
        if user is not None:
            login(request,user)      # login用於登陸,第一個參數request,第二個參數接收驗證返回的用戶對象
            return render(request,'1.html')

# login,會將用戶登陸狀態從request注入到HTML頁面,因此,在HTML頁面能夠判斷到
# { % if request.user.is_authenticated %}
# ...
# 判斷用戶是否登陸...
#
# { % endif %}

 

若是要求容許用戶表裏的兩個字段中的任意一個字段值均可以登陸,就須要邏輯處理頁面須要重寫authenticatespa

2,配置信息3d

相關文章
相關標籤/搜索