Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/284.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Django Rest Framework在使用ModelSerializer保存到视图集中之前向模型添加字段_Python_Django_Serialization_Django Rest Framework - Fatal编程技术网

Python Django Rest Framework在使用ModelSerializer保存到视图集中之前向模型添加字段

Python Django Rest Framework在使用ModelSerializer保存到视图集中之前向模型添加字段,python,django,serialization,django-rest-framework,Python,Django,Serialization,Django Rest Framework,使用Django Rest Framwork,我想在实际保存ModelSerializer管理的模型之前,在数据库中设置一个不能为null的字段,但它不包括在Meta类的fields元组中 在我的视图集中,我定义了perform\u create,并希望执行以下操作: serializer.fields.new\u field=new\u field\u id 其中new_field是我的模型上的外键,new_field.id是我刚刚使用cookie上的值集获取的模型的id 有人知道一个干净的解

使用Django Rest Framwork,我想在实际保存ModelSerializer管理的模型之前,在数据库中设置一个不能为null的字段,但它不包括在Meta类的fields元组中

在我的视图集中,我定义了perform\u create,并希望执行以下操作:

serializer.fields.new\u field=new\u field\u id

其中new_field是我的模型上的外键,new_field.id是我刚刚使用cookie上的值集获取的模型的id

有人知道一个干净的解决办法吗

谢谢

你是说

def perform_create(self, serializer):
    serializer.save(user=self.request.user)
你是说

def perform_create(self, serializer):
    serializer.save(user=self.request.user)

签出此@TOD或其他解决方案。已经三个了!感谢您选择此@Tod或其他解决方案。已经三个了!ThanksHmm我也试过了,然后它告诉我:user是这个函数的无效关键字参数。我选择了一个中间件解决方案,在该解决方案中,我对每个请求修改request.POST.method==POST。这非常有效,因为我需要将字段添加到多个资源中,并且可以依赖于DRF的内置验证器。虽然我读到修改请求并不是一个好主意,但它对DRY有帮助。它显示了一个不同的kwarg,我刚刚意识到我的模型字段的名称与PyCharm建议的名称不同。。看来我现在有两个有效的解决方案。太好了&谢谢!嗯,我也试过了,它告诉我:user是这个函数的无效关键字参数。我选择了一个中间件解决方案,在该解决方案中,我对每个请求修改request.POST.method==POST。这非常有效,因为我需要将字段添加到多个资源中,并且可以依赖于DRF的内置验证器。虽然我读到修改请求并不是一个好主意,但它对DRY有帮助。它显示了一个不同的kwarg,我刚刚意识到我的模型字段的名称与PyCharm建议的名称不同。。看来我现在有两个有效的解决方案。太好了&谢谢!