您现在的位置是:课程教程文章
django中不同app如何共用数据模型
2023-12-18 23:14课程教程文章 人已围观
-
Python Django框架
Python Django框架... -
python毕业设计 校园鲜花水果商城 毕设源
python毕业设计 校园鲜花水果商城 毕设源功能 开发环境 开发语言:python;Python版本:3.8.7 开发框架:Django;Django版本:... -
Django轻松实现博客网站【2019千锋Python】
Django轻松实现博客网站【2019千锋Python】获取视频资料源码,请添加官方指定qq:2377443170 学完本教程,可轻松使用Djan... -
面板数据模型与Stata操作
面板数据模型与Stata操作课程概述 老师介绍 副教授,数量经济学博士,理论经济学在站博士后,擅长应...
django的每个app目录下,都有自己的models.py文件。
原则上,每个app涉及的数据库,都会定义在这个文件里。
但是,有的数据库,涉及到多个app应用,不是很方便放在一个单独的app里。
这时,我往往会新建一个public app,然后,将这个目录的modles.py里放置这些数据库,
可是,这样又显得太分散了。
所以,有时也会考虑单独新建一个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中不同app如何共用数据模型
下一篇:没有了