如何使用VS Code调试Django自定义管理命令

时间:2019-05-06 16:01:48

标签: python django debugging visual-studio-code

我正在尝试使用Visual Studio Code调试自定义管理命令。

为此,我阅读了有关使用Python和Django的官方VS Code教程,并在遵循这些教程的同时设法调试了。

VS Code Python tutorial / VS Code Django tutorial

问题在于,对于Python脚本(非Django),调试器可以正常工作,因为在打开文件选项卡时我运行了特定文件(按f5键)。 Django调试有效,因为VS Code知道何时浏览器请求导致我的Django应用达到我在VS Code中输入的断点。

但是自定义管理命令的运行方式有所不同。为此,我在控制台中键入以下内容:

python manage.py name_of_management_command

如何在VS Code中调试它?

2 个答案:

答案 0 :(得分:0)

在撰写此问题时,我自己想出了一个解决方案。

在VS Code launch.json文件(包含VS Code Django调试器的设置)中,默认情况下包含以下条目:

"args": ["runserver", "--noreload", "--nothreading"]

我将其更改为:

"args": ["name_of_management_command"]

然后启动调试器(按f5键),我正在调试自定义管理命令

答案 1 :(得分:0)

Rik的答案是正确的,但要求您为每个单独的管理命令创建一个调试条目。

管理命令的名称与其文件名相同,但没有扩展名.py。为了创建一个可以调试 all 管理命令的条目,甚至还需要编写的命令,请将以下配置添加到launch.json中:

        {
            "name": "Django MGMT Command",
            "type": "python",
            "request": "launch",
            "program": "${workspaceFolder}/manage.py",
            "args": [
                "${fileBasenameNoExtension}"
            ]
        }

除了${fileBasenameNoExtension}以外,您还可以在启动配置中使用更多变量,请参见https://code.visualstudio.com/docs/editor/variables-reference