So debuggen Sie Django-Befehle in PyCharm

84

Ich weiß, wie man Befehle mit PyCharm ausführt (Extras -> Task "manage.py ausführen"), möchte sie aber auch debuggen, einschließlich meiner Befehle und der Befehle der Drittanbieter-App.

Taras Bilynskyi
quelle
Wenn Sie versuchen, die Befehle "manage.py" zu debuggen (die in app / management / command / folder), können Sie die Antwort von @ Kevin verwenden, aber im "Skript" die Datei "manage.py" und den Befehl eingeben, in dem Sie ausgeführt werden möchten "Skriptparameter".
RVC

Antworten:

170

Sie können einen benutzerdefinierten Django-Administrator- / Verwaltungsbefehl in PyCharm debuggen, indem Sie einen benutzerdefinierten Django-Servereintrag im Menü Konfiguration ausführen / debuggen erstellen:

  • Klicken Sie auf Edit Configurations....
  • Klicken Sie auf das Pluszeichen und wählen Sie Django server.
  • Füllen Sie das , Namewie Sie bitte, deaktivieren Sie das Hostund PortFelder, Kontrolle Custom run commandund geben Sie rechts von der Checkbox den Namen des Befehls.
  • Geben Sie zusätzliche Befehlszeilenargumente in das separate Feld ein Additional options, das nicht im Befehl run angehängt ist.
  • OK klicken.

Legen Sie nun einen Haltepunkt fest, wählen Sie Ihre neue Konfiguration aus dem Menü Konfiguration ausführen / debuggen und klicken Sie auf die Schaltfläche Debuggen. Et voilà!

Kevin
quelle
20
Schwerpunkt für Leute wie mich, die anscheinend nicht richtig lesen können: Die Felder Host und Port müssen gelöscht werden, sonst funktioniert der benutzerdefinierte Befehl nicht!
Henrik Heimbuerger
Entschuldigung, aber was soll ich in "Benutzerdefinierter Ausführungsbefehl" einfügen? Ich habe mein "simple_chart" aufgerufen, aber beim Debuggen erhalte ich den "unbekannten Befehl". Ich habe in views.py eine Methode namens simple_chart, in die ich einen Haltepunkt eingefügt habe. Ich möchte nur, dass der Debugger dort anhält, damit ich die Variablen in der lokalen Umgebung untersuchen kann.
Frikster
1
Ich habe keine Django Server Option im Plus
Dejell
10
Für diejenigen, die Probleme haben: Das Feld "Benutzerdefinierter Ausführungsbefehl" sollte nur Ihren Befehl enthalten. Wenn Sie beispielsweise py manage.py cmdvon der Konsole aus laufen , enthält diese Box einfach cmd.
Texnic
1
@Dejell: Sie benötigen die professionelle Version von Pycharm für die Unterstützung von DJANGO. ( jetbrains.com/pycharm/features/editions_comparison_matrix.html )
PeterN
8

Da durch das Löschen von Host und Port der Befehl überhaupt nicht ausgeführt wird (PyCharm 5), habe ich die Lösung gefunden, eine Python- Ausführungskonfiguration anstelle eines Django-Servers zu verwenden . Füllen ScriptSie das Skript "manage.py" und andere Parameter aus Script Parametersund passen Sie Ihre Umgebung an, z Working directory.

Fischmonitor
quelle
2
Das hat es für mich zum Laufen gebracht (pycharm 2016). Fügen Sie manage.py in das Skript ein, Ihren django-Verwaltungsbefehl in die Skriptparameter (zusammen mit allen Befehlsflags für django mangement) und ändern Sie das Arbeitsverzeichnis.
Yunti