django模型类,

  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的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: