当前位置: 首页 > 面试题库 >

Django应用依赖周期

周正真
2023-03-14
问题内容

我正在开发Django应用程序,该应用程序具有非常复杂的模型(它为大学建模-课程,模块,讲座,学生等)。

我将该项目分为多个应用程序,以使整个事情井井有条(应用程序是课程,学校,人员,模块和时间段)。我遇到一个问题,即一个应用程序中的模型可能依赖于另一个应用程序中的模型-因此我必须导入它。然后,第二个应用程序又依赖于第一个应用程序,因此存在一个周期,Python抛出错误。

人们如何处理呢?我知道应用程序应该相对“独立”,但是在这样的系统中,例如,使用ContentTypes将学生链接到模块是没有意义的。

有人有类似的项目可以对此案发表评论吗?


问题答案:

如果你的依赖关系是使用外键引用其他应用程序中的模型的,则无需导入其他模型。你可以在ForeignKey定义中使用字符串

class MyModel(models.Model):
    myfield = models.ForeignKey('myotherapp.MyOtherModel')

这样就无需导入MyOtherModel,因此不需要循环引用。Django在内部解析该字符串,并且一切正常。



 类似资料:
  • 我遇到了依赖注入周期问题。我请求重新设计建议。提前谢谢。 错误描述:应用程序上下文中某些bean的依赖关系形成一个循环: 这是两个班 第一类: 第二类:

  • 主要内容:创建应用程序,获取项目来了解应用程序一个项目是许多应用的总和。每个应用程序有一个客观并可重复使用到另一个项目,像在网站上的联系表单可以是一个应用程序,并且可以重复使用到其它应用。看到它作为项目的一个模块。 创建应用程序 我们假设在项目文件夹。在我们有主项目“myproject”文件夹,并在一级文件夹有一个文件:manage.py ,执行以下命令 − 刚刚创建的 myapp 应用程序类似于项目,Django创建 “myapp” 文件夹

  • 我们在这里添加模块中依赖的jar包、文件和模块,还可以配置它们的作用范围. build.gradle中配置的依赖我们在上面已经介绍过,这里再提一下下,这两个依赖配置的意思是指定编译时需要依赖libs目录下所有的jar文件和一个android组件. dependencies { compile fileTree(dir: 'libs', include: ['*.jar']) compile

  • 问题内容: 我正在使用Django 1.4,并且想要设置比较不同内联值的验证规则。 我有三个简单的课程 在models.py中: 在admin.py中: 因此,例如可以以10美元的价格购买一瓶朗姆酒和以8美元的价格购买一瓶伏特加酒。迈克支付15美元,汤姆支付3美元。 目的是防止用户以不匹配的金额保存实例:已支付的金额必须与商品费用的金额相同(即10 + 8 = 15 + 3)。 我试过了: 在Sh

  • 我想知道以下jar的所有传递依赖项: 将经典命令移动到pom。项目定义依赖关系和输入的xml: mvn依赖:树 将显示: 我没看到魔咒父母: 乍一看,mvn命令似乎可以显示非pom类型的依赖项。 有没有一种方法可以精确地显示使jar保持活动状态所需的每个文件? 谢谢

  • Gradle 支持从 Maven 或 Ivy 仓库中拉取依赖文件。首先必须将仓库添加到列表中,然后必须在 dependencies 中添加 Maven 或 Ivy 声明的包。 repositories { jcenter() } dependencies { compile 'com.google.guava:guava:18.0' } android { ... } 注意