"user_id" 列中的空值违反了 post 请求中的非空约束,序列化程序

null value in column "user_id" violates not-null constraint in post request , serialzier

这是我的视图和序列化程序, 当我 post 一些数据时,在列“user_id”中获取空值违反了非空约束 通过后 user_id 同样的问题

观看次数

serializer_class = subSerializer()

class subView():
    serializer = self.get_serializer(data=request.data)
    serializer.is_valid(raise_exception=True)
    self.perform_create(serializer)

serializer.py

class UserSerializer(serializers.ModelSerializer):
         ....................

class subSerialzier(serializers.ModelSerializer):
      user = UserSerializer(read_only=True)
       class Meta:
    model = RecipeSubmission
    fields = (
        'id',
        'user',
        'name',
         .......)

我认为您需要在创建之前获取用户对象并将其添加到数据中。 现在您必须只为 'user' 字段提供一个整数。它应该是一个用户对象。

class subView(request):
    new_data = request.data
    user = User.objects.get(id=request.data['user']) # that is if you are sending the use Id from the frontend
    new_data['user']=user
    serializer = self.get_serializer(data=new_data)
    serializer.is_valid(raise_exception=True)
    self.perform_create(serializer)

试试看