2017-06-06 86 views
0

我是新來的python以及Django和學習序列化。我觀察到,在定義序列化器類時,它需要一個嵌套的元類。我對這個元類概念不太熟悉,所以我對它進行了搜索,發現元類是一個類,其實例是類。即使在閱讀後,我感到困惑。外部序列化程序類是內部元類的實例嗎?在這裏使用這個元類有什麼需要?django:爲什麼我們在modelSerializer中使用嵌套的元類?

+1

不,這是一個完全不同的概念。這裏只是一個帶有一些定義的內部類。但是在Django中使用了相同的概念;真的,在你學習django-rest-framework之前,你應該學習Django。如果你有,這種模式不會讓你感到驚訝。 –

回答

2

Python的元類和Django的Meta類是不同的概念。

你在谷歌上發現的是Python的元類,這是一個Django框架使用了很多但不在其面向用戶的代碼中的構造。 This blog post解釋了Django如何在框架的代碼中使用元類。

Django的類在另一方面,它在一些框架最前面元件中使用的內部類結構:模型,表單,串行器,ModelAdmins等這些類描述被讀出的一定的元件的構造運行時或遷移時間,但不嚴格保存在數據庫中,因爲它們不是數據庫所關心的。例如,如果未指定順序,則框架將讀取模型的元配置,以便知道該模型的QuerySet的首選順序是什麼。表單將讀取它在調用is_valid時必須驗證的字段。等等。

相關問題