我是Django和MVT的新手,所以我很抱歉如果这是一个愚蠢的问题。我查看了一些类似的问题,但我正在寻找一些额外的清晰度,以及我是否试图做正确的事情。Django,模型和应用程序
下面是我正在处理的简化版本。假设我正在设计一个Django接口到一个预先存在的数据库。数据库是旧的,其他系统向它添加数据。 Django界面将是只读的。简单的结构与4的内容表:
- 小工具
- 创想(为简单起见,每个小部件都有一个造物主)
- 客户
- 订单(客户多到不少订单,订单很多,TO-很多小部件)
我开始创建一个名为“Widget”的Django应用程序,该应用程序显示Widget信息并为数据库中的所有表创建模型。这很好用,像/ widget/1234这样的URL我得到了ID为1234的Widget的信息,来自Creator表的信息以及它已经订购了多少次。
现在我想创建一个名为“Customer”的应用程序,它显示客户的信息(客户表中的数据,下达的订单,订购的小部件等)。
我做错了什么吗?是否应该有一个单独的“客户”应用程序?
如果确实有一个独立的“客户”应用程序是有意义的,我该如何处理这些模型?它们与“Widget”应用程序中使用的模型相同,因为它们处理同一数据库中的相同表格。我只是从其他应用程序导入?谢谢!
我有我的模型定义,完整的ForeignKeys等,多亏了“manage.py inspectdb”命令,也有添加几个db_column和related_name参数,但都很好。所以,我有/ widget/1234从多个表中拉出数据并使用模板输出。我想我不确定的事情是什么时候功能应该移到新的应用程序?即,如果到目前为止我的应用程序中有纯粹的“Widget”面向的页面(小部件搜索,小部件详细信息视图),并且我想要“面向客户”和“订购”的页面,那么应保留在同一个应用程序中或做一个新的?相同的型号。 – Raolin
并感谢您的答案,顺便说一句! – Raolin
我明白了,听起来你比我想象的要远得多。您应该创建新应用的标准不取决于页面的类型,因为该页面的视图很容易处理。相反,根据文档,应用程序是“执行某项操作的Web应用程序 - 例如,Weblog系统,公共记录数据库或简单的投票应用程序。”所以如果你有一个非常简单的应用程序,它看起来像你可能有,你真的只需要一个应用程序。 –