gpt4 book ai didi

django - 在 Django 中扩展/修改外部应用程序 View 的正确方法是什么?

转载 作者:行者123 更新时间:2023-12-04 03:07:05 24 4
gpt4 key购买 nike

我正在开发一个 Django 项目,我有一些安装到我的虚拟环境中的外部应用程序。

其中一个应用程序具有通过定义 def upload 并在 urls.py /upload 路由到它来上传文件的功能

现在我想在方法中添加一些功能,例如 @login_required 或将 request.user 与参数一起发送。

我可以通过直接更改外部应用程序代码来实现,但是如果应用程序升级,它就会中断。

我尝试将应用程序的 views.py 复制到我本地的同名 app 文件夹,并在那里编写我自己的代码,但似乎没有工作(作为模板修改)

我还有其他选择吗?谢谢!

最佳答案

您可以用自己的 View 包裹外部应用程序的 View 。在你自己的 views.py 中:

from external_app.views import upload_view

@login_required
def custom_upload_view(self, request, *args, **kwargs):
# Do something before
...
return upload_view(request, *args, **kwargs)

你只需要确保你有自己的 URL 模式指向外部应用程序 url 之前的 url 配置中的自定义 View

关于django - 在 Django 中扩展/修改外部应用程序 View 的正确方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9209069/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com