我正在尝试使用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中调试它?
答案 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