2011-03-18 25 views
5

Django使用Meta類獲得大量額外的對象信息。但是,他們將這些信息存儲在一個'_meta'對象中,該對象通過命名約定是私有的。直接在您的django應用程序中訪問._meta是否安全?

django管理員(和其他地方)我看到像opts = model._meta等東西,然後他們使用各種選項,如app_labelverbose_name

我可以確信訪問._meta,並確保它不會在未來發生改變,還是我最好創建一個訪問的._meta在一個地方一個「訪問」混入什麼的,所以如果它確實改變我只需要更新一件事?

+0

從文體上講,你總是更好地創建一個你不維護的原因的界面。 :) – mway 2011-03-18 15:17:36

回答

4

我經常使用_meta,至今沒有任何問題。你可以在django文檔中看到它們的一個例子here,所以我覺得它或多或少都可以。只需謹慎行事,寫出良好的測試,以便在後續升級django版本時知道任何問題。

2

我在幾個項目中使用_meta,在這些項目中我想要通用訪問由api提供的信息。由於Django非常穩定,我認爲大多數時候你可能都沒問題。在你的單元測試中覆蓋你的使用_meta可能是一個好主意。

相關問題