django - Django REST:POST 请求问题,必填字段
问题描述
我遇到了 POST 请求的问题。“员工”字段是必需的,但我在视图中初始化它(我将其设置为 request.user),而不是在请求参数中。但是我仍然收到以下错误:
data:
employee: ["This field is required."]
看法
class EmployeeQuestionView(viewsets.ModelViewSet):
queryset = EmployeeQuestion.objects.all()
serializer_class = EmployeeQuestionSerializer
def perform_create(self, serializer):
serializer.save(employee=self.request.user)
串行器
class EmployeeQuestionSerializer(serializers.ModelSerializer):
class Meta:
model = EmployeeQuestion
fields = (
'id',
'employee',
'question',
'attempted',
'passed',
)
任何想法为什么?
解决方案
使用 read_only 在验证中忽略员工
class EmployeeQuestionSerializer(serializers.ModelSerializer):
employee = serializers.SerializerMethodField(read_only=True)
class Meta:
model = EmployeeQuestion
fields = (
'id',
'employee',
'question',
'attempted',
'passed',
)
@staticmethod
def get_employee(obj):
return obj.employee
推荐阅读
- vb.net - Kendo UI - 图表 ValueAxis 数字格式
- python - 访问实例变量,AttributeError
- r - R 为每行运行 T 检验/方差分析,每行有 2 组,有 3 个样本
- dji-sdk - 需要为 DJIMediaFile 获取额外属性的能力:QuickShot 类型(如果使用它拍摄视频)、延时系列、AEB 系列
- dart - Flutter Dio 包下载路径
- java - DoubleBinding 使用 Bindings.format() 但不使用 bind()
- react-native - 如何在 Windows 10 中发布 React Native 应用程序以测试飞行
- influxdb - 选择每小时查询
- javascript - material ui adding onclick
- authentication - saml IDP / SP 如何与 auth0 一起工作?