>  기사  >  백엔드 개발  >  Django 튜토리얼에서 사용자 프로필 사용 소개(소스 코드 첨부)

Django 튜토리얼에서 사용자 프로필 사용 소개(소스 코드 첨부)

不言
不言원래의
2018-09-15 14:23:562311검색

이 글은 Django 튜토리얼(소스 코드 첨부)에서 User-Profile 사용에 대한 소개를 담고 있습니다. 필요한 친구들이 참고할 수 있기를 바랍니다.

Profile 기능: User에 내장된 필드가 완벽하지 않아 단일 사용자 정보가 생성됩니다. Profile은 User를 확장하는 것, 즉 사용자 정보를 풍부하게 하는 것입니다.

모델에 Profile 클래스를 생성하고 필드 사용자와 사용자가 OneToOne 관계 및 계층을 형성합니다.

on_delete=models.CASCADE

신호 관련 패키지 소개

from django.dispatch import receiverfrom django.db.models.signals import post_save

데코레이터 장식 기능, 사용자가 생성될 때 신호가 트리거되고 자동으로 사용자 필드가 생성됩니다. 프로필을 연결하고 사용자가 저장하면 신호가 트리거되고 프로필이 자동으로 저장됩니다.

소스 코드

from django.db import models
from django.contrib.auth.models import User
#信号
from django.db.models.signals import post_save,post_init
from django.dispatch import receiver
class Profile(models.Model):
    user = models.OneToOneField(User,on_delete=models.CASCADE)
    birth = models.DateField(null=True,blank=True)
    def __str__(self):
        return self.user.username
    class Meta:
        db_table = 'profile'
@receiver(post_save,sender=User)
def create_user_profile(sender,instance,created,**kwargs):
    print('创建User')
    if created:
        Profile.objects.create(user=instance)
@receiver(post_save,sender=User)
def save_user_profile(sender,instance,**kwargs):
    print('保存User')
    instance.profile.save()

관련 권장 사항:

Django 세션에서 사용자 개체를 사용하는 방법

가르치기 Nginx+uWSGI+Django 메서드를 사용하여 Django 프로그램을 배포하는 방법을 5단계로 안내합니다

위 내용은 Django 튜토리얼에서 사용자 프로필 사용 소개(소스 코드 첨부)의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.