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套件函式
- PHP FFI詳解 - 一種全新的PHP擴充套件方式PHP套件
- 兩個簡單的擴充套件方法:TrimPrefix和TrimSuffix套件
- PHPWAMP安裝Redis擴充套件的方式與相關擴充套件的下載PHPRedis套件
- SAP S/4HANA Cloud 上 in-app 和 side-by-side 兩種擴充套件方式的介紹CloudAPPIDE套件
- php7安裝redis擴充套件和memcache擴充套件PHPRedis套件
- shell中擴充套件命令套件
- 擴充套件類的三種方式(繼承,裝飾模式,動態代理)套件繼承模式
- iOS中擴充套件機制Category和associativeiOS套件Go
- 介紹兩個好玩的和Github相關的Chrome擴充套件GithubChrome套件
- sql中的擴充套件學習SQL套件
- 用 TDD 的方式為 Laravel 開發擴充套件Laravel套件
- 用擴充套件的方式在 PHP 中使用 Kafka套件PHPKafka
- STL中的棧的擴充套件 (轉)套件
- 如何擴充套件Django使用者模組套件Django
- 乾貨丨如何水平擴充套件和垂直擴充套件DolphinDB叢集?套件
- 可擴充套件的使用者表設計套件
- WCF擴充套件:行為擴充套件Behavior Extension套件
- PHPmemcache和memcached擴充套件的區別PHP套件
- UNDO SEGMENT的擴充套件和收縮套件
- Scale-up(縱向擴充套件)和Scale-out(橫向擴充套件)套件
- ?用Chrome擴充套件管理器, 管理你的擴充套件Chrome套件
- C#中的擴充套件類的理解C#套件
- CSS 滑鼠懸浮橫條從中間向兩邊擴充套件CSS套件
- Mybatis之map操作使用者和模糊查詢擴充套件MyBatis套件
- 【Kotlin】擴充套件屬性、擴充套件函式Kotlin套件函式
- ubuntu建立使用者的兩種方式Ubuntu
- Activiti擴充套件的使用者任務屬性套件
- 安裝Swoole框架和擴充套件框架套件
- 位擴充套件和位截斷套件
- Sanic 擴充套件套件
- ORACLE 擴充套件Oracle套件
- 擴充套件工具套件
- 擴充套件歐幾里得套件
- DOM擴充套件套件