06. Django에서 사용자의 두 가지 확장 방식(Profile 및 AbstractUser)

1:profile 확장
프로젝트를 정상적으로 설정하려면 다음과 같이 하십시오.
python-admin.py startproject myweb
서브 프로젝트 만들기
manage.py startapp user
하위 항목 구성은 다음과 같습니다.
models.py
from django.db import models
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)
admin.py
#coding:utf-8
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
views.py
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을 구성하려면:
my 웹 디렉토리의 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
백그라운드 로그인 보기
2: AbstractUser 상속
프로파일과 같이 새 항목 만들기
myweb 수정은 다음 문을 추가합니다.
AUTH_USER_MODEL = 'login.User'
login 중:
models.py
from django.db import models
from django.contrib.auth.models import AbstractUser

# Create your models here.

class User(AbstractUser): # AbstractUser
desc = models.TextField()
admin.py
#coding:utf-8
from django.contrib import admin

# Register your models here.
from login.models import User
admin.site.register(User)
나머지 URL 구성,views.py 설정과 settings.py의 부분 설정과 프로필의 설정 방식
데이터베이스 동기화:
makemigrations
migrate
syncdb
백그라운드 로그인 하시면 됩니다.

좋은 웹페이지 즐겨찾기