2016-07-12 28 views
1

我一直在阅读django rest框架文档,我找不到如何将参数传递给序列化程序的init方法。在经常看来,我这样做:Django REST框架 - 如何将参数传递给序列化程序__init__

def get_form_kwargs(self, *args, **kwargs): 
    form_kwargs = super(ContentCreateView, self).get_form_kwargs(*args, **kwargs) 
    form_kwargs['delivery_id'] = self.kwargs['delivery_id'] 
    return form_kwargs 

你知道我可以做到这一点,使用CreateAPIView/UpdateAPIView?

感谢您的帮助

+0

我没有任何引用的手,但IIRC这是不是真的有可能,我想也许你想通过串行化器上下文传递的东西 - 我发现自己拉出来的请求的情况下的序列化了很多,一般来说它有点笨重,他们意识到这并不理想。 – Steve

回答

0

DRF有解决这个问题的办法。

要么你需要delivery_id保存您的实例,在这种情况下,你直接将它传递给the serializer's save并把它在create/updatevalidated_data

要么你需要它用于验证在这种情况下你'它会传递给serializer's context,你就可以在串行/场使用的self.context['request']例如。您需要覆盖该视图的get_serializer_context

相关问题