2

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

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

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

例如 .. 在注册时保存 cookie,我通过编辑根文件来做到这一点。但是有人可以告诉我如何在我的项目中覆盖这些特定的功能。

谢谢

4

1 回答 1

2

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

如果您想要的某些部分与 3rd 方应用程序提供的有很大不同,您可以考虑分叉项目,进行更改并将更改推送到其 git 存储库,然后通过重新安装您的分叉版本

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

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

在您的情况下,您要重新映射的是mezzanine.accounts.urls. 参考 - https://github.com/stephenmcd/mezzanine/blob/master/mezzanine/accounts/urls.py

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

如果你真的需要修改一个夹层models.py,我建议你走上面提到的分叉路线。

于 2012-11-23T05:07:29.437 回答