在django1.6项目中,我使用的模型结构具有外键依赖关系,如下所示。在ParentModel方法mixin中,我需要添加一个方法,该方法在方法上下文中创建新的ChildModel
实例,父外键作为“self”。在
我通过从ParentModel
方法中导入ChildModel
成功地实现了这一点,但我想知道是否有一种更干净的方法来实现这一点。当我尝试在中直接导入顶层的子模型时mixins.py,我得到一个导入错误,这是由于交叉导入造成的。在
有没有办法在ParentModel方法中避免导入表单?在
如果不是,出于好奇,让ChildImport从方法内部动态导入的开销是多少? 或者python每次都要导入这个方法,还是缓存了这些代码?在
模型.py
from .mixins import ParentMixins
class ParentModel(models.Model, ParentMixins):
name = models.TextField()
class ChildModel(models.Model):
parent = models.ForeignKey(ParentModel)
mixins.py
^{pr2}$
假设您可以保证任何类都不会为父字段定义相关的名称,那么您只需在
create_child
方法中执行此操作:那就根本不需要做导入了。在
(尽管我必须承认,我对mixin依赖于具体模型中的字段的想法有点困惑,但它实际上并没有提供它自己)
相关问题 更多 >
编程相关推荐