推荐一遍博客:https://blog.csdn.net/pzl_pzl/article/details/81056185
我采用第二种方式,贴代码:
利用django的信号量机制(采用django内置的用户模型拓展)
from django.db.models.signals import post_save
from django.dispatch import receiver
@receiver(post_save,sender=settings.AUTH_USER_MODEL)
def generate_token(sender,instance=None,created=False,**kwargs):
if created:
password = instance.password
instance.set_password(password)
instance.save()
print(instance.password)
Token.objects.create(user=instance)
drf源码:(采用viewsets方式,对应的create代码)
class CreateModelMixin:
"""
Create a model instance.
"""
def create(self, request, *args, **kwargs):
serializer = self.get_serializer(data=request.data)
serializer.is_valid(raise_exception=True)
self.perform_create(serializer)
headers = self.get_success_headers(serializer.data)
return Response(serializer.data, status=status.HTTP_201_CREATED, headers=headers)
def perform_create(self, serializer):
serializer.save()#序列化器对象不是自定义的user对象,只是一堆序列化的数据
网友评论