django模型类,
django的每个app目录都有自己的models.py文件。
原则上每个app涉及的数据库都会在这个文件中定义。
但有些数据库,涉及多个app应用,不方便放在单个app里。
这个时候我往往会新建一个公共app,然后把这些数据库放在这个目录的modles.py中。
但是,这太分散了。
所以有时候会考虑单独创建一个类似cmdb的app,所有的模型数据库文件都定义在这个app下。
这个操作会带来一个问题,就是默认django源代码写死了,一个app只能有一个models.py文件。
如果在应用程序中拖放多个不同的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.创建新的__init__。py文件,并导入该目录下models.py中的所有模型。
5.再次运行python manage.py makemigrations,django将能够感知这些文件。
6.编写admin.py时,导入models文件夹下的内容。
这里总结一下同时应用于多个模型时,admin.py中的@admin.register装饰如何写?
@admin.register(BaseImage,MiddleImage,DeployImage,DeployConfig)
classBaseImage(admin。模型管理员):
及格
classMiddleImage(admin。模型管理员):
及格
classDeployImage(admin。模型管理员):
及格
classDeployConfig(admin。模型管理员):
及格
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。