django中,如何把所有models模型文件放在同一个app目录下?
django的每个app目录下,都有自己的models.py文件。
原则上,每个app涉及的数据库,都会定义在这个文件里。
但是,有的数据库,涉及到多个app应用,不是很方便放在一个单独的app里。
这时,我往往会新建一个public app,然后,将这个目录的modles.py里放置这些数据库,
可是,这样又显得太分散了。
SO,有时也会考虑单独新建一个cmdb这样的app,将所有models数据库文件放在这个app下定义。
那这样操作,会带来一个问题,就是默认django源代码时写死了,一个app只能有一个models.py文件。
如果在app下放多个不同的models.py文件(用前缀或后缀区分),
使用python manage.py makemigrations命令时,django不能感知到其它的models.py文件。
而我当然想将不同的应用分不同的models.py文件放了。
那如何扩展呢?
按网上的方法,是如何实现的:
1,删除cmdb的app目录下默认的models.py文件。
2,在cmdb的app目录下新建一个models文件夹。
3,在models文件夹时,按不同的应用,建立不同的models.py文件(用前缀或后缀区分)。
4,在models文件夹下新建一个__init__.py文件,将所有的此目录下的models.py里的model导入。
5,再次运行python manage.py makemigrations,django就能感知到这些文件了。
6,写admin.py时,导入models文件夹下的东东,即可。
在此,再总结一下admin.py里的@admin.register装饰,同时应用在多个models上时的写法。
@admin.register(BaseImage, MiddleImage, DeployImage, DeployConfig) class BaseImage(admin.ModelAdmin): pass class MiddleImage(admin.ModelAdmin): pass class DeployImage(admin.ModelAdmin): pass class DeployConfig(admin.ModelAdmin): pass
django中,如何把所有models模型文件放在同一个app目录下?的更多相关文章
- 转 Django根据现有数据库,自动生成models模型文件
Django引入外部数据库还是比较方便的,步骤如下 : 创建一个项目,修改seting文件,在setting里面设置你要连接的数据库类型和连接名称,地址之类,和创建新项目的时候一致 运行下面代码可以自 ...
- python学习-- Django根据现有数据库,自动生成models模型文件
Django引入外部数据库还是比较方便的,步骤如下 : 创建一个项目,修改seting文件,在setting里面设置你要连接的数据库类型和连接名称,地址之类,和创建新项目的时候一致 运行下面代码可以自 ...
- Django中从本地上传excel文件并将数据存储到数据库
Django中从本地上传excel文件并将数据存储到数据库 一.前端界面 <div class="page-container"> <form action=&q ...
- Django——URL详解/Django中URL是如何与urls文件匹配的
URL标准语法 protocol://hostname[:port]/path/[:parameters][?query]#fragment https://i.cnblogs.com/EditPos ...
- Java中删除文件、删除目录及目录下所有文件(转)
原文链接:Java中删除文件.删除目录及目录下所有文件 知识点:File.delete()用于删除“某个文件或者空目录”!所以要删除某个目录及其中的所有文件和子目录,要进行递归删除,具体代码示例如下: ...
- java中把文件拷贝到指定目录下最简单几种方法
java中把文件拷贝到指定目录下最简单几种方法 String savePath = "D:/file";// 文件保存到d盘的file目录下 File savefile = n ...
- 关于DLL文件和EXE文件不在同一目录下的设置【转】
https://www.cnblogs.com/chaosimple/archive/2012/08/13/2636181.html 关于DLL文件和EXE文件不在同一目录下的设置 在开发程序结束后, ...
- 转载:C# 将引用的DLL文件放到指定的目录下
当软件引用的DLL比较多的时候,全部的DLL都放在exe同目录下,显得比较乱,如果能把dll放到响应的文件夹下面,就方便很多 下面是解决该问题的一种方法: 右键点击项目:属性->设置,项目会生成 ...
- Java_io_02_从一个目录拷贝文件到另一个目录下
java从一个目录拷贝文件到另一个目录下 http://www.cnblogs.com/langtianya/p/4857524.html ** * 复制单个文件 * @param oldPath ...
随机推荐
- ruby计算完成率
task_complete = ((task_forms_w.to_f / task_forms_num.to_f)*100).round(2).to_s << "%" ...
- ubuntu16.04.1下安装mysql
版本信息 ubuntu版本:16.04.1 mysql-server版本:5.7.23 安装 先查看一下apt可获取的mysql版本 ubuntu@VM-0-4-ubuntu:~$ apt searc ...
- QT_校园导航Update
//MainWidget.h #ifndef MAINWINDOW_H #define MAINWINDOW_H #include <QMainWindow> #include " ...
- 使用jQuery实现返回顶部功能
<p id="back-to-top"><a href="#top"><span></span>返回顶部< ...
- 时间轴QTimeLine
一个动画由多张静态图片组成,每一张静态图片为一帧.每隔一定时间显示一帧,如果时间间隔非常短的话,那这些静态图片就会构成一个连续影像,动画由此而来.QTimeLine提供了用于控制动画的时间轴,它在实现 ...
- luogu P1486 [NOI2004]郁闷的出纳员
一万年以后终于调过了这题 这道题主要是维护一个有序的集合(吧),所以使用平衡树(我这里用\(Splay\)) 记录一个变量\(ff\)(雾),表示所有工资的变化量 对于\(I\)操作,如果初始工资大于 ...
- loadrunner函数解密之web_reg_find
loadrunner工具的使用,最关键的在于3个地方: A:脚本的编写 B:场景设计 C:性能测试结果分析 其中难度比较大的第一步是:编写脚本,有很多人对于loadrunner里面的各种函数使用的并不 ...
- Java并发编程--并发容器之Collections
在JDK1.2之前同步容器类包括Vector.Hashtable,这两个容器通过内置锁synchronized保证了同步.后面的ArrayList.LinkedList.HashMap.LinkedH ...
- sklearn中的回归器性能评估方法(转)
explained_variance_score() mean_absolute_error() mean_squared_error() r2_score() 以上四个函数的相同点: 这些函数都有一 ...
- Linux的capability深入分析(1)【转】
转自:https://blog.csdn.net/wangpengqi/article/details/9821227 一)概述: )从2.1版开始,Linux内核有了能力(capability)的概 ...