2016-07-12 49 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

相關問題