python - 如何覆盖Mezzanine文件?

标签 python django mezzanine

我正在使用 Mezzanine + 墨盒并想要对其进行自定义。

我可以通过将模板放在我们的项目模板文件夹中来覆盖它们。

但我不知道如何覆盖 View 和模型。因为我必须为我的项目编辑一些额外的功能。

例如..在注册时保存cookie,我通过编辑根文件来完成此操作。但是有人可以告诉我如何在我的项目中覆盖这些特定的函数吗?

谢谢

最佳答案

您可以通过两种主要方式处理对第 3 方应用程序的修改。

如果您想要的某些部分与第 3 方应用程序提供的内容显着不同,您可能会考虑 fork 该项目,进行更改并将更改推送到其 git 存储库,然后通过

pip install -e git+git://github.com/YourUsername/forked-django-app.git#egg=forked-django-app

如果您认为这可能太麻烦,另一种方法是在您自己的项目的 urls.py 中声明特定的 url/view 函数(在第 3 方应用程序中定义)。

就您而言,您尝试重新映射的是mezzanine.accounts.urls。引用-https://github.com/stephenmcd/mezzanine/blob/master/mezzanine/accounts/urls.py

因此,您基本上可以在自己的项目的 urls.py 中声明要覆盖的 url,它将优先于夹层声明的 url,并且您可以将其指向您的自定义 View 函数。

如果您确实需要修改夹层的 models.py 之一,我建议您采用上面提到的 fork 路线。

关于python - 如何覆盖Mezzanine文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13523072/

相关文章:

themes - 如何部署 : Installing Mezzanine Theme

python - 如何设置 TAL 条件来检查文件类型并相应地在 Plone 4.1 中渲染模板

python - 为什么 “sort”出现在elasticsearch的这个JSON中?

python - 如何从 Django 模型中获取 ID

python - Django 'global name' 错误

python - 如何将夹层安装为 Django 应用程序?

python - 在 CentOS 上部署 Mezzanine CMS

python - anaconda (python 3.6) 中的 pyglet 安装错误

python - 无法使用 pandas 提取数据框列

Python 调用 "self.property"和创建返回 "self.property"的方法有什么区别?