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目录下?的更多相关文章

  1. 转 Django根据现有数据库,自动生成models模型文件

    Django引入外部数据库还是比较方便的,步骤如下 : 创建一个项目,修改seting文件,在setting里面设置你要连接的数据库类型和连接名称,地址之类,和创建新项目的时候一致 运行下面代码可以自 ...

  2. python学习-- Django根据现有数据库,自动生成models模型文件

    Django引入外部数据库还是比较方便的,步骤如下 : 创建一个项目,修改seting文件,在setting里面设置你要连接的数据库类型和连接名称,地址之类,和创建新项目的时候一致 运行下面代码可以自 ...

  3. Django中从本地上传excel文件并将数据存储到数据库

    Django中从本地上传excel文件并将数据存储到数据库 一.前端界面 <div class="page-container"> <form action=&q ...

  4. Django——URL详解/Django中URL是如何与urls文件匹配的

    URL标准语法 protocol://hostname[:port]/path/[:parameters][?query]#fragment https://i.cnblogs.com/EditPos ...

  5. Java中删除文件、删除目录及目录下所有文件(转)

    原文链接:Java中删除文件.删除目录及目录下所有文件 知识点:File.delete()用于删除“某个文件或者空目录”!所以要删除某个目录及其中的所有文件和子目录,要进行递归删除,具体代码示例如下: ...

  6. java中把文件拷贝到指定目录下最简单几种方法

    java中把文件拷贝到指定目录下最简单几种方法   String savePath = "D:/file";// 文件保存到d盘的file目录下 File savefile = n ...

  7. 关于DLL文件和EXE文件不在同一目录下的设置【转】

    https://www.cnblogs.com/chaosimple/archive/2012/08/13/2636181.html 关于DLL文件和EXE文件不在同一目录下的设置 在开发程序结束后, ...

  8. 转载:C# 将引用的DLL文件放到指定的目录下

    当软件引用的DLL比较多的时候,全部的DLL都放在exe同目录下,显得比较乱,如果能把dll放到响应的文件夹下面,就方便很多 下面是解决该问题的一种方法: 右键点击项目:属性->设置,项目会生成 ...

  9. Java_io_02_从一个目录拷贝文件到另一个目录下

    java从一个目录拷贝文件到另一个目录下   http://www.cnblogs.com/langtianya/p/4857524.html ** * 复制单个文件 * @param oldPath ...

随机推荐

  1. ThinkPHP 3.2 支付宝即时到账接口开发

    前言: 一.支付流程 构造请求参数 向支付宝网关发送请求 生成支付宝页面 支付宝交易结果 二.构建支付类 1.官方即时到账文档地址: https://doc.open.alipay.com/doc2/ ...

  2. indexOf与includes的比较

    indexOf和includes都代表检测数组或字符串中是否包含某一个元素 其中indexOf返回的是数值类型,而includes返回的是布尔类型 var ary = [,,]; console.lo ...

  3. mysql手工注入总结

    mysql -u 用户名 -p 密码 -h IP地址 show databases;   查看数据库 select version(); php注入的版本号 use database(表名): sho ...

  4. 第16月第10天 poco target

    1. void TCPServer::start() { poco_assert (_stopped); _stopped = false; _thread.start(*this); } void ...

  5. pygame(class类)调用视图的方法

    以下将介绍pygame精灵动画的基础知识,希望对大家有帮助:1.在此,精灵类必须继承pygame.sprite.Sprite并初始化pygame.sprite.Sprite.__init__(self ...

  6. python - 类的内置 attr 方法

    类的内置 attr 方法 #类的内置 attr 方法: # __getattr__ # __setattr__ # __delattr__ # __getattr__ #到调用一个类不存在数参数时,将 ...

  7. shiroWeb项目-授权(十一)

    使用PermissionsAuthorizationFilter 在applicationContext-shiro.xml中配置url所对应的权限. 测试流程: 1.在applicationCont ...

  8. struct 与 class 的区别

    C++中的struct对C中的struct进行了扩充,它已经不再只是一个包含不同数据类型的数据结构了,它已经获取了太多的功能. struct能包含成员函数吗? 能! struct能继承吗? 能!! s ...

  9. secureCRT连接linux系统

    linux和secureCRT利用ssh协议22端口进行远程连接的 连接如果没有成功,请检查远程主机的端口和ssh是否开启 一.检查看SSH服务是否开启 当然有的linux系统使用的命令是/etc/i ...

  10. 安装jdk的时候为什么会有两个jre文件

    有些东西,你懂不懂其实并不太影响你干活,但有些人就是有疑惑就非得弄懂,不然浑身难受,我大概就是这种德性的.昨天安装javaSE的时候,看到jdk中有个jre文件夹,而根目录下又有个jre文件夹,非常困 ...