我想知道这是不是一个好的做法。我通常在"lib“目录下有可重用的django-apps和python lib,它工作得很好。然后我将“template”目录直接放在项目根目录下,并将默认的应用程序模板从lib/django- app /template复制到我的项目" templates“目录中,并修改布局更改。
现在,有时我需要更改/修改网站的可重用应用程序的行为,所以我想在我的项目下创建一个“新应用程序”,并根据需要修改内容。这样我就可以很好地升级可重用的应用程序。
这是一条可行的道路吗?有没有更好的方法?
谢谢。
发布于 2009-08-26 07:50:45
在我看来,抓取一个副本并直接修改可重用的应用程序并不是一个好方法。这样,当您的可重用应用程序获得新功能或其错误被修复时,您就不能轻松地拉出新版本的应用程序。
更好的方法是修改不适合你需要的部分,覆盖它们,但保持应用程序不变。让我们以contrib的Django评论应用为例。当注释模型中没有所有必需的字段时,您应该通过创建继承原始注释的自定义注释模型来修改它,并以这种方式添加所需的功能。来自文档:
from django.contrib.comments.models import Comment
class CommentWithTitle(Comment):
title = models.CharField(max_length=300)现在,我已经修改了评论应用程序,我还可以更新评论应用程序的源代码,而不必担心冲突。你不需要添加一些东西就可以使用它,当你处理掉一些东西或者改变一些东西的时候,它同样有效。
对于视图和模板,直接修改应用程序提供的模板是一种不太好的做法。我更喜欢通过对指定模板的视图使用关键字参数来实现这一点。如果我想用我自己的模板替换默认模板,我可以从url配置中指定新的模板。现在,我不必触摸视图来更改模板,并且url配置清楚地表明我正在使用自己的模板,而不是使用默认的模板。
https://stackoverflow.com/questions/1332784
复制相似问题