Python Django Rest Framework在使用ModelSerializer保存到视图集中之前向模型添加字段
使用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 有人知道一个干净的解决办法吗 谢谢 你是说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 有人知道一个干净的解
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建议的名称不同。。看来我现在有两个有效的解决方案。太好了&谢谢!