2017-01-10 57 views
0

我目前正在構建一個使用單例對象的Django應用程序。 我想將這個對象保存爲CBV變量,因爲我不想爲每個'get'調用初始化它。使Django的CBV得到一個實例方法

我的問題總之 - 你可以使CBV的get函數實例化方法而不是的類方法嗎? 如果是這樣,我可以保存一個變量作爲一個實例變量?

編輯 - 我的問題一個更好的解釋:

我創建的處理與電子測量儀器的序列化連接的類。 這個類必須只有1個實例(單例),如果另一個實例將被創建一個內存泄漏將崩潰python。

我想在下面的Django的方式使用它:

Get請求一定URL地址 - > 視圖將要求器械類的實例作爲數據 - > 實例與數據迴應 - > 查看返回一個帶有數據的JsonResponse。

我認爲這樣做是使得CBV的get方法(其涉及到的URL IM從獲得)的實例方法,但它沒有這樣一個好的做法的最好方式..

我應該如何做它?

+0

'get'不是類方法嗎?.. .. – Sayse

+1

你可以以某種方式,但爲什麼在世界上你想這樣做。 – hspandher

+0

@hspandher我需要使用某個類對象,如果get不是一個實例方法,我將不得不重新初始化每個對象的對象(當我重新初始化它,否則丟失存儲的數據) –

回答

0

正如我所說的,get的一個實例方法。

但是你在這裏混淆了責任。一個班只應該有一個責任。視圖類負責響應請求並返回響應;這與儀器的連接非常分離。這應該是一個單獨的類,它在模塊級實例化並在視圖類中使用。

相關問題