2014-12-06 81 views
1

我对Django相当新,已经完成了前面的教程,并回到前面,我正在创建自己的网站。Django应用程序范围问题

但是,目前有两个问题阻止了我的进展。作为背景:我是一名企业Java开发人员,所以我熟悉数据库设计,外键和实体/模型范围的重要性。另外,我使用php和mysql创建了网站,因此很熟悉包括页眉/页脚/菜单等。由于Django使用模板继承来“包含”页面,所以切换到Django很困难,部分原因是因为这一点,包括每个页面中的每个页脚/页眉/菜单。

对于这些问题,想象别人谁喜欢重新创建YouTube网站和Django(只是假设 - !?谁也无论如何要做到这一点)

  1. 一个如何定义应用范围是什么?我阅读了多个来源(包括django网站),应用程序应该非常小,在我们的例子中可能是:评论应用程序,视频上传应用程序,推荐的视频应用程序等。但是 - 在我看来 - 评论应该有一个外键视频和外键给用户。如果有人设计评论应用程序,那么如何解决这些外键约束/依赖关系,因为他们需要指向不同的应用程序?或者,也许,如何应用范围的应用程序?

  2. 与问题1相关,关于模板...为单个应用程序设计视图和模板并不是一个真正的问题(但)。但是,如何将多个应用程序结合在一起。例如,可以创建一个“家”应用程序,其中包含菜单,页眉,页脚,登录等。但这意味着其他应用程序(如评论)需要扩展该视图,从而为家庭应用程序创建另一个依赖项。如何在django中做到这一点?

请注意,我并不寻找完整的代码 - 尽管代码片段可能有助于解释这些概念 - 但这些问题更具理论性。

+0

很高兴知道我们不必担心跨应用程序的外键。所以对于这个问题:我们应该如何确定应用范围? – GreenAsJade 2014-12-06 10:42:28

回答

0

你有点过分想这个。一个应用程序实际上只是一个方便的代码分组。没有什么能够阻止应用程序在另一个应用程序中拥有模型的外键:实际上,这或多或少是必需的,特别是在链接到用户的情况下,因为它们是由contrib.auth应用程序提供的。

至于模板,这不是专门处理应用程序,而是需要从多个位置收集数据的任何模板。通常的做法是使用自定义模板标签 - 可能是inclusion tags - 来查询和呈现数据。