有一个移动应用程序应该使用用户名发出请求,如果这样的用户已经存在,则应向其返回令牌,否则应将用户添加到数据库,为他生成令牌并返回。如何实施?这是我已经拥有的:
from rest_framework import serializers
from rest_framework.authtoken.models import Token
class CreateOrReturnUserSerializer(serializers.ModelSerializer):
class Meta:
model = User
fields = ('username',)
def create(self, validated_data):
user = None
try:
user = User.objects.filter(username=validated_data['username'])
except:
user = User.objects.create(**validated_data)
return Token.objects.get(user=user)