2015-08-22 49 views
4

我想要Django中的模型的Django-RESTful API。但不是將數據存儲在數據庫中,我想使用當前會話。會話作爲Django REST中的持久存儲?

我想過製作一個自定義的ModelSerializer來覆蓋create()和update()。我也想過做一個自定義對象管理器,如:

MyModel.objects = SomeManager() 

的問題是,我不得不從視圖SomeManager()插入的request.session實例,但我不知道在哪裏或者如何以最好的方式做到這一點。

任何提示?

+0

有趣......但爲什麼? – demux

+2

@ArnarYngvason我正在購物車。所以我希望用戶添加物品到購物車。完成後,我會將購物車存儲在數據庫中。 – mrmclovin

回答

1

不應重寫序列化程序中的create()和update(),而應該重寫視圖的create()和update()。這是照顧會話變量的好地方。

你甚至可以創建自己的擴展APIView,CreateModelMixin和UpdateModelMixin的類。 這兩個mixin將提供.update(request,* args,** kwargs)和.create(request,* args,** kwargs)方法,實現更新和保存現有模型實例。

DRF通用視圖的這種文檔給出了很好的想法:http://www.django-rest-framework.org/api-guide/generic-views/。此外,您還可以瀏覽www.cdrf.co,其中詳細介紹了各種Django REST Framework基於類的視圖和序列化器的詳細說明,並提供了完整的方法和屬性。

這是更好的地方來處理臨時會話變量,直到您想要將此數據保存到永久存儲中。