我正在编写 REST APIDjango REST 框架。该 API 将成为社交移动应用程序的后端。遵循教程后,我可以序列化所有模型,并且能够创建新资源并更新它们。
我正在使用 AuthToken 进行身份验证。
我的问题是:
一旦我有了/users
资源,我希望应用程序用户能够注册。那么,拥有像这样的单独资源更好吗?/register
或允许匿名用户发布到/users
新资源?
此外,一些有关权限的指导也会很棒。
Django REST 框架 3allow覆盖create
序列化器中的方法:
from rest_framework import serializers
from django.contrib.auth import get_user_model # If used custom user model
UserModel = get_user_model()
class UserSerializer(serializers.ModelSerializer):
password = serializers.CharField(write_only=True)
def create(self, validated_data):
user = UserModel.objects.create_user(
username=validated_data['username'],
password=validated_data['password'],
)
return user
class Meta:
model = UserModel
# Tuple of serialized model fields (see link [2])
fields = ( "id", "username", "password", )
继承自的类的序列化字段ModelSerializer
必须在专利中声明Meta
对于 Django Rest 框架v3.5和最新的。
File api.py:
from rest_framework import permissions
from rest_framework.generics import CreateAPIView
from django.contrib.auth import get_user_model # If used custom user model
from .serializers import UserSerializer
class CreateUserView(CreateAPIView):
model = get_user_model()
permission_classes = [
permissions.AllowAny # Or anon users can't register
]
serializer_class = UserSerializer
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)