您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

如何从插件中修补南方处理的模型?

5b51 2022/1/14 8:20:43 python 字数 2993 阅读 452 来源 www.jb51.cc/python

我正在制作带插件的django网站.每个插件都是一个简单的django应用程序,取决于主要的(或甚至其他插件).虽然应用程序/插件之间的依赖关系对我来说很清楚,但是通过猴子修补添加列(作为插件特定模型的外键)应该是可以接受的,以避免主应用依赖于插件.由于主应用程序已经具有南方管理功能,因此具有所有插件,因此我无法在这些模块的设置中更改迁移目录.那么,我如何从

概述

我正在制作带插件django网站.每个插件都是一个简单的django应用程序,取决于主要的(或甚至其他插件).

虽然应用程序/插件间的依赖关系对我来说很清楚,但是通过猴子修补添加列(作为插件特定模型的外键)应该是可以接受的,以避免主应用依赖于插件.

由于主应用程序已经具有南方管理功能,因此具有所有插件,因此我无法在这些模块的设置中更改迁移目录.

那么,我如何从其他南方应用程序中修补南方应用程序模型?

ps:我是法国人,如果你发现任何错误,可以随意纠正我的问题,或者如果我不清楚的话,可以随便提问.

编辑:我在django迁移中添加了关于我现在如何做的答案.

如果所有模型都自动跟踪,我将在稍后的迁移中看到.

在我的新迁移文件中:

class Migration(SchemaMigration):
    def forwards(self,orm):
        db.add_column(u'remoteapp_model','fieldname',self.gf('django.db.models.fields.related.ForeignKey',(to=orm["my_plugin.MyModel"],default=None,null=True,blank=True),keep_default=False)


    def backwards(self,orm):
        db.delete_column(u'remoteapp_model','fieldname')

    # for models,you may want to copy from a prevIoUs migration file
    # and add from the models of the main application the related tables
    models = {} 

在我的模型文件中:

from remoteapp.models import RemoteModel
from django.db import models

class MyModel(models.Model):
    pass

models.ForeignKey(MyModel,blank=True,default=None).contribute_to_class(RemoteModel,'my_model')

总结

以上是编程之家为你收集整理的如何从插件中修补南方处理的模型?全部内容,希望文章能够帮你解决如何从插件中修补南方处理的模型?所遇到的程序开发问题。


如果您也喜欢它,动动您的小指点个赞吧

除非注明,文章均由 laddyq.com 整理发布,欢迎转载。

转载请注明:
链接:http://laddyq.com
来源:laddyq.com
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。


联系我
置顶