django-models - 在 django rest 框架中发出发布请求时出现错误 415 不支持的媒体类型
问题描述
嘿,我正在使用 django rest 框架来注册用户。我正在使用具有内置 User 类的所有方法的自定义用户模型。我刚刚在 CharType 模型中添加了一个电话号码字段。现在,在设置完所有内容后,如果我尝试通过注册来填充数据库,它会给我 415 媒体类型不受支持的错误。
模型.py
from django.db import models
from django.contrib.auth.models import AbstractUser
# Create your models here.
class CustomUser(AbstractUser):
phone_number = models.CharField(max_length=20, default=False, unique=True)
视图.py
from rest_framework.views import APIView
from rest_framework.response import Response
from django.contrib.auth import get_user_model
from .serializers import UserSerializer
# Create your views here.
class SignUp(APIView):
model = get_user_model()
def post(self, request):
serializer = UserSerializer(data=request.data)
serializer.is_valid(raise_exception=True)
serializer.save()
return Response(serializer.data)
我希望可以选择填写电子邮件字段。
序列化程序.py
from rest_framework import serializers
from django.contrib.auth import get_user_model
from rest_framework.validators import UniqueValidator
UserModel = get_user_model()
class UserSerializer(serializers.ModelSerializer):
phone_number = serializers.CharField(
required=True,
validators=[UniqueValidator(queryset=UserModel.objects.all(), message=("Phone Number already exists"))]
)
email = serializers.CharField(source='email', allow_blank=True)
class Meta:
model = UserModel
fields = ['username', 'phone_number', 'email', 'password', 'first_name', 'last_name']
extra_kwargs = {
'first_name': {'required': True},
'last_name': {'required': True}
}
password = serializers.CharField(write_only=True, required=True)
def create(self, validated_data):
user = UserModel.objects.create(
username=validated_data['username'],
email=validated_data['email'],
phone_number = validated_data['phone_number'],
first_name = validated_data['first_name'],
last_name = validated_data['last_name']
)
user.set_password(validated_data['password'])
user.save()
return user
网址.py
from django.urls import path
from .import views
urlpatterns = [
path('sign-up', views.SignUp.as_view(), name='sign-up'),
]
解决方案
推荐阅读
- javascript - React Context:什么时候重新渲染孩子?
- excel - 为什么会出现此复选框问题?
- excel - 删除excel下拉列表中的重复项而不创建新表
- java - spring mvc项目不返回jsp页面HTTP状态404
- php - 如何使用 PHP 或 Laravel 函数从其他两个数组创建嵌套关联数组?
- mongodb - 我有一个来自控制台的空对象(req.body)
- json - 通过 nuget 共享 JSON 文件的最佳方式?
- python - 有没有办法使用语音识别移动使用 Raspberry Pi 3 构建的遥控汽车?
- azure-active-directory - 应用注册 API 权限更改是否延迟?
- python - howto:main.py,带有 kivy 轮播代码的新类,kv 文件