如何在PyCharm中调试Django命令

114

我知道如何在PyCharm中运行命令(工具 -> 运行 manage.py 任务),但我也想调试它们,包括我的命令和第三方应用程序的命令。


如果您正在尝试调试manage.py命令(位于app/management/commands/文件夹中),您可以使用@Kevin的答案,但是将manage.py放入“脚本”中,并将要运行的命令放入“脚本参数”中。 - RVC
相关链接:https://dev59.com/XmbWa4cB1Zd3GeqPYqPn#11725797 - djvg
3个回答

235
您可以通过在运行/调试配置菜单中创建自定义Django服务器条目来在PyCharm中调试自定义的Django管理命令:
  • 点击 Edit Configurations...
  • 点击加号并选择 Django server
  • 随意填写Name,清空HostPort字段,勾选Custom run command并在复选框右侧输入您的命令名称。
  • 将任何额外的命令行参数输入到单独的字段 Additional options 中,不要附加在运行命令后面。
  • 点击OK。

现在设置断点,从运行/调试配置菜单中选择您的新配置,然后单击“Debug”按钮。Et voilà!


44
像我这样显然无法正确阅读的人需要强调:必须清空“主机”和“端口”字段,否则自定义命令将无法工作! - Henrik Heimbuerger
如果我清空主机和端口字段,则运行窗口不会显示。 - Fish Monitor
2
我在plus中没有Django服务器选项。 - Dejell
22
对于那些遇到困难的人: "自定义运行命令"框中应只包含您的命令。例如,如果您在控制台中运行 py manage.py cmd,则该框将简单地包含 cmd - texnic
2
@Dejell:你需要Pycharm的专业版才能支持DJANGO。(https://www.jetbrains.com/pycharm/features/editions_comparison_matrix.html) - PeterN
显示剩余5条评论

11

由于清除主机和端口将完全无法运行命令(PyCharm 5),我发现的解决方案是使用Python运行配置而不是Django服务器。在脚本中填写您的manage.py脚本,在脚本参数中添加其他参数,并调整您的环境,例如工作目录


2
这是让我成功运行的方法(pycharm 2016)。将manage.py放入脚本中,将您的Django管理命令与脚本参数一起使用(以及任何Django管理命令标志),并更改工作目录。 - Yunti
谢谢,被采纳的答案没帮上我,但是你的帮了我。 - slx0009

7
我将使用下面的自定义Django命令来进行解释:
python manage.py execute_algorithm -f input_data.json

配置Django命令的步骤:

步骤:从Django工具栏进入:

Run > Edit Configurations

在左上角点击“+”图标,创建新的命令 > 从下拉列表中选择“Django server”。

填写以下细节:

Name:任何适当的名称,例如execute_algorithm_command

Host:清除该字段

Port:默认为8000,清除它。

Custom Run Command:首先勾选此框。 在此处提供您的命令名称。您可以从apps/module/management/command/execute_algorithm获取该名称。 例如值:execute_algorithm

Additional options:命令名称后面的任何内容。 值为:-f input_data.json


这与7年前发布的被接受答案有何不同? - miken32
2
@miken32 回顾第一个答案,它包含了所需的一切,但不知何故,我没有理解它。这个回答通过使用一个例子实现了与第一个相同的效果。顺便说一句,有些人可以理解不同的解释方式。 - fang_dejavu

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接