我正在使用 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/