我將簡要介紹一下:爲了在Django應用程序的精神和想法中工作,應用程序從另一個應用程序內導入模型可以嗎?例如,用戶統計應用將從用戶應用導入模型,如:from users.models導入用戶在Django應用程序之間共享模型
回答
如果你正在構建一個沒有機會向公衆發佈的內部應用程序,當然可以做任何你想做的事情。
如果您正在構建一個內部應用程序,它幾乎不會被公開發布,但可能會被未來/當前開發人員使用,但一定要記錄應用程序需要正常工作的內容。
如果你正在構建一個公開發布的應用程序,試着保持它自我依賴(和Django的內部依賴,即使用django提供的,儘可能)。如果您確實需要第三方應用程序才能工作,或者如果第三方應用程序會使您的代碼更易於管理,那麼一定要包括依賴項,但要加倍確保記錄所有的要求和必要的設置。
在大多數情況下,只要您有足夠的文檔,您幾乎可以做任何事情。
但是,我不得不質疑製作屬於您自己User
的模型,它與django的內置模塊auth.User
同名。
它不是同一個名字,而是完全相同的模型類。 – 2010-11-09 19:07:51
用戶和用戶統計應用程序,只是爲了舉例,因爲我的情況不容易理解。這回答了我的問題,謝謝! – 2010-11-10 07:12:57
不要這樣做。他們將擁有相同的應用程序名稱,而ORM將會感到困惑。改爲使用抽象模型,並從中派生出來。
你沒有誤解OP的要求嗎?他沒有提到在不同的應用程序中對模型進行相同的定義,他在談論如何將User類導入到他的應用程序中,以便他可以從中獲取數據呢? IOW,這個問題的答案是「是的,當然你可以。」 – 2010-11-09 19:18:48
@丹尼爾:情況可能如此。如果OP澄清他正在尋找什麼,那麼我會修改。 – 2010-11-09 19:25:17
你應該考慮修改它,因爲你對你的解釋顯然是錯誤的 – Sensei 2015-07-15 19:13:10
你可以試試更好extending the Django User model with inheritance。您將使用添加了自定義字段的django用戶,因此您將擁有所有應用程序的相同用戶。
我曾經在IRC(freenode#django)上看到過幾個人在嘗試子類「auth.User」時遇到問題後遇到問題。一般來說,除非你知道你需要它,否則這是你應該遠離的東西之一。另外,[用戶簡檔](http://docs.djangoproject.com/en/1.2/topics/auth/#storing-additional-information-about-users)是通常優選的存儲附加信息的方法用戶。 – eternicode 2010-11-10 05:26:33
答案是肯定的。 django項目中的一個應用程序從另一個應用程序導入模型是完全可以的。 django項目的力量在於應用程序及其相互作用。
還要確保您有實用程序應用程序從更通用的應用程序導入模型,而不是其他方式。所以「userstatistics」應用程序應該從「用戶」應用程序導入模型,但「用戶」應用程序不應該依賴「用戶統計」。
如果您的應用程序從第三方應用程序(可以說是django-piston)導入模型,請務必在需求文件中指定該模型。
- 1. 在使用gems的Rails應用程序之間共享模型
- 2. 在應用程序之間共享的模型:DataMapper Rails其他
- 3. 在Rails應用程序和Ruby腳本之間共享模型
- 4. 在不同的應用程序之間共享CI模型
- 5. 如何在應用程序之間共享模型?
- 6. 在Web應用程序之間共享模型數據
- 7. 定義一個在許多應用程序之間共享的Django模型
- 8. 應用程序之間共享在C#
- 9. 在應用程序之間共享drawables
- 10. 在進程之間共享tensorflow模型
- 11. django - 在應用程序之間共享數據
- 12. 如何在Django模型實例之間共享公共數據?
- 13. 應用程序和共享會話之間的共享DLL
- 14. 在ScriptSharp和MVC之間共享模型
- 15. 如何在CakePHP中的應用程序之間共享模型類?
- 16. 模塊之間共享ZF2模型
- 17. ZF2 - 模塊之間的共享模型
- 18. 在兩個Rails之間共享通用模型應用
- 19. Django在另外兩個人之間共享一個模型
- 20. 在兩個django項目之間共享一個模型
- 21. Android之間共享應用程序之間的文件
- 22. 在同一個項目中的兩個應用程序之間共享Django用戶模型
- 23. 線程池是否在應用程序域之間共享?
- 24. ASP.NET MemoryCache在應用程序間共享
- 25. 控制器之間的共享模型
- 26. Android應用程序:在用戶之間共享數據
- 27. Symfony2 - 在多個應用程序之間共享用戶
- 28. 在Android應用程序用戶之間共享令牌(數據)
- 29. 在幾個後端應用程序之間共享用戶表
- 30. 如何在django項目中的應用程序之間正確共享代碼
請注意,在Django的模型名稱應該是單數。 – Ski 2010-11-09 19:49:03