最新公告
  • 欢迎您光临起源地模板网,本站秉承服务宗旨 履行“站长”责任,销售只是起点 服务永无止境!立即加入钻石VIP
  • django中不同app如何共用数据模型

    正文概述    2020-08-24   425

    django中不同app如何共用数据模型

    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如何共用数据模型

    常见问题FAQ

    免费下载或者VIP会员专享资源能否直接商用?
    本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
    提示下载完但解压或打开不了?
    最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度网盘软件或迅雷下载。若排除这种情况,可在对应资源底部留言,或 联络我们.。
    找不到素材资源介绍文章里的示例图片?
    对于PPT,KEY,Mockups,APP,网页模版等类型的素材,文章内用于介绍的图片通常并不包含在对应可供下载素材包内。这些相关商业图片需另外购买,且本站不负责(也没有办法)找到出处。 同样地一些字体文件也是这种情况,但部分素材会在素材包内有一份字体下载链接清单。
    模板不会安装或需要功能定制以及二次开发?
    请QQ联系我们

    发表评论

    还没有评论,快来抢沙发吧!

    如需帝国cms功能定制以及二次开发请联系我们

    联系作者

    请选择支付方式

    ×
    迅虎支付宝
    迅虎微信
    支付宝当面付
    余额支付
    ×
    微信扫码支付 0 元