2014-07-07 90 views
3

我創建了一些直接從viewsets.ViewSet而不是從ModelViewSet子類化的視圖,其中很多(但不是全部)沒有在類上明確聲明序列化器,因爲我不需要他們那樣。一個這樣的視圖集的例子是「驗證電子郵件」視圖集,它只需輸入驗證碼,然後ViewSet上的方法查找驗證碼並驗證用戶。沒有必要的串行器或型號,我只使用ViewSet,以便我可以在路由器中正確註冊視圖。添加窗體到Django Rest框架ViewSets

但是,這些視圖都缺少在ModelViewSet頁面通常用於POST和PUT請求的Browseable API頁面底部自動生成的表單。

我需要做什麼或指定讓這些表單與我的首選字段一起出現在這些ViewSet子類中?

回答

0

您需要爲視圖設置序列化程序。在它

BrowsableAPIRenderer回報是get_context方法:

'put_form': self.get_rendered_html_form(data, view, 'PUT', request), 
'post_form': self.get_rendered_html_form(data, view, 'POST', request), 

get_rendered_html_form可以尋找視圖定義的串行器。

它是有意義的,因爲您無法處理由POSTPUT發送的沒有序列化程序的數據。