我正在使用 Mezzanine + 墨盒并希望对其进行自定义。
我可以通过将模板放在我们的项目模板文件夹中来覆盖它们。
但我不知道如何覆盖视图和模型。因为我必须为我的项目编辑一些额外的功能。
例如 .. 在注册时保存 cookie,我通过编辑根文件来做到这一点。但是有人可以告诉我如何在我的项目中覆盖这些特定的功能。
谢谢
您可以通过两种主要方式来处理对 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
,我建议你走上面提到的分叉路线。