06.Django中使用者的兩種擴充套件方式(Profile和AbstractUser)
1:profile擴充套件
正常建立一個專案:
python-admin.py startproject myweb
建立子專案
manage.py startapp user
子專案配置如下:
models.py
from django.db import modelsadmin.py
from django.contrib.auth.models import User #匯入admin的User
from django.db.models.signals import post_save
# Create your models here.
class UserProfile(models.Model):
user = models.OneToOneField(User)
description = models.TextField(max_length=51200)
scope = models.IntegerField(default=100)
#coding:utf-8views.py
from django.contrib import admin
from django.contrib.auth.models import User
from login.models import UserProfile
# Register your models here.
class ProfileInline(admin.StackedInline): #將UserProfile加入到Admin的user表中
model = UserProfile
verbose_name = 'profile'
class UserProfileAdmin(admin.ModelAdmin):
inlines = (ProfileInline,)
admin.site.unregister(User) #去掉在admin中的註冊
admin.site.register(User, UserProfileAdmin) #用userProfileAdmin註冊user
from django.shortcuts import render
from django.http import HttpResponse
from django.contrib.auth.models import User
from login.models import UserProfile
# Create your views here.
def userDemo(request):
desc = User.objects.all()[0]
return HttpResponse(desc)
配置URL:
myweb目錄下的url:
from django.conf.urls import include, url
from django.contrib import admin
urlpatterns = [
url(r'^admin/', include(admin.site.urls)),
url(r'^login/', include('login.urls'))
]
賦值一份urls.py 到user的目錄下,修改urlpatterns 如下:
from django.conf.urls import include, url
from django.contrib import admin
urlpatterns = [
url(r'^login/$', 'login.views.userDemo')
]
資料庫的同步:
makemigrations
migrate
syncdb
二:繼承AbstractUser
新建一個專案如Profile所示
myweb修改新增如下語句:
AUTH_USER_MODEL = 'login.User'
login中:models.py
from django.db import modelsadmin.py
from django.contrib.auth.models import AbstractUser
# Create your models here.
class User(AbstractUser): #繼承AbstractUser
desc = models.TextField()
#coding:utf-8其餘的URL配置 ,views.py配置和settings.py的部分配置同profile的配置方式
from django.contrib import admin
# Register your models here.
from login.models import User
admin.site.register(User)
資料庫的同步:
makemigrations
migrate
syncdb
後臺登陸即可
相關文章
- 基於C++和Rust兩種方式擴充套件nodejs對比C++Rust套件NodeJS
- 3 種擴充套件 Kubernetes 能力的方式套件
- kotlin 擴充套件(擴充套件函式和擴充套件屬性)Kotlin套件函式
- SAP S/4HANA Cloud 上 in-app 和 side-by-side 兩種擴充套件方式的介紹CloudAPPIDE套件
- spring bean 擴充套件方式SpringBean套件
- PHP FFI詳解 - 一種全新的PHP擴充套件方式PHP套件
- 兩個簡單的擴充套件方法:TrimPrefix和TrimSuffix套件
- 介紹兩個好玩的和Github相關的Chrome擴充套件GithubChrome套件
- shell中擴充套件命令套件
- 用擴充套件的方式在 PHP 中使用 Kafka套件PHPKafka
- 用 TDD 的方式為 Laravel 開發擴充套件Laravel套件
- sql中的擴充套件學習SQL套件
- 可擴充套件的使用者表設計套件
- 乾貨丨如何水平擴充套件和垂直擴充套件DolphinDB叢集?套件
- 【Kotlin】擴充套件屬性、擴充套件函式Kotlin套件函式
- Mybatis之map操作使用者和模糊查詢擴充套件MyBatis套件
- 【SpringBoot】分析 SpringBoot 中的擴充套件點Spring Boot套件
- ?用Chrome擴充套件管理器, 管理你的擴充套件Chrome套件
- ubuntu建立使用者的兩種方式Ubuntu
- 聊聊 Spring 的 XML Schema 擴充套件機制的使用方式SpringXML套件
- Activiti擴充套件的使用者任務屬性套件
- C#中的擴充套件類的理解C#套件
- Bundler和Minifier Visual Studio擴充套件Nifi套件
- 安裝Swoole框架和擴充套件框架套件
- PHP擴充套件開發就是一個自己的PHP擴充套件PHP套件
- CSS 滑鼠懸浮橫條從中間向兩邊擴充套件CSS套件
- iOS開發的分類和擴充套件iOS套件
- 擴充套件工具套件
- Sanic 擴充套件套件
- Mybatis擴充套件MyBatis套件
- SpringMVC 擴充套件SpringMVC套件
- ORACLE 擴充套件Oracle套件
- laradock 中安裝 PHP 擴充套件PHP套件
- 擴充套件中國剩餘定理套件
- 正則的擴充套件套件
- SRAM的容量擴充套件套件
- 以對話的方式擴充套件架構的實踐 - Andrew套件架構
- Spring 中的 XML schema 擴充套件機制SpringXML套件
- 聊聊Spring中的那些擴充套件機制Spring套件