首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >django可重用应用和django项目结构

django可重用应用和django项目结构
EN

Stack Overflow用户
提问于 2009-08-26 06:49:58
回答 1查看 766关注 0票数 1

我想知道这是不是一个好的做法。我通常在"lib“目录下有可重用的django-apps和python lib,它工作得很好。然后我将“template”目录直接放在项目根目录下,并将默认的应用程序模板从lib/django- app /template复制到我的项目" templates“目录中,并修改布局更改。

现在,有时我需要更改/修改网站的可重用应用程序的行为,所以我想在我的项目下创建一个“新应用程序”,并根据需要修改内容。这样我就可以很好地升级可重用的应用程序。

这是一条可行的道路吗?有没有更好的方法?

谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2009-08-26 07:50:45

在我看来,抓取一个副本并直接修改可重用的应用程序并不是一个好方法。这样,当您的可重用应用程序获得新功能或其错误被修复时,您就不能轻松地拉出新版本的应用程序。

更好的方法是修改不适合你需要的部分,覆盖它们,但保持应用程序不变。让我们以contrib的Django评论应用为例。当注释模型中没有所有必需的字段时,您应该通过创建继承原始注释的自定义注释模型来修改它,并以这种方式添加所需的功能。来自文档:

代码语言:javascript
复制
from django.contrib.comments.models import Comment

class CommentWithTitle(Comment):
    title = models.CharField(max_length=300)

现在,我已经修改了评论应用程序,我还可以更新评论应用程序的源代码,而不必担心冲突。你不需要添加一些东西就可以使用它,当你处理掉一些东西或者改变一些东西的时候,它同样有效。

对于视图和模板,直接修改应用程序提供的模板是一种不太好的做法。我更喜欢通过对指定模板的视图使用关键字参数来实现这一点。如果我想用我自己的模板替换默认模板,我可以从url配置中指定新的模板。现在,我不必触摸视图来更改模板,并且url配置清楚地表明我正在使用自己的模板,而不是使用默认的模板。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1332784

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档