Django benutzerdefinierte Management-Befehle: AttributeError: 'Modul' Objekt hat kein Attribut 'Befehl'

8

Ich versuche, einen benutzerdefinierten Verwaltungsbefehl zu erstellen, wie er in den Dokumenten angezeigt wird: Ссылка

Wenn ich versuche, den Befehl aus meinem Projektverzeichnis auszuführen, tritt der folgende Fehler auf:

%Vor%

Hier ist die Datei:

%Vor%

Der Befehl, den ich ausführe ist:

%Vor%

Ich habe sichergestellt, dass ich die Datei event_expiration.py in den Ordnern für Verwaltung und Befehle hinzufüge und dass diese Ordner Init-Dateien haben. Diese befinden sich in einem meiner App-Ordner.

Verstehe ich hier etwas übersehen? Jede Hilfe wird geschätzt, danke!

BEARBEITEN:

Kollege SO Benutzer Yuji hat mir geholfen, ein wenig zu debuggen, aber wir sind immer noch ratlos. was wir getan haben:

Zuerst die vollständige Rückverfolgung und den Befehl:

%Vor%

Um zu sehen, was bei django / core / management / init .py ", Zeile 70 vorging, platzierte ich import pdb; pdb.set_trace () in der Datei.

Im Debug-Modus haben wir versucht:

%Vor%

um zu überprüfen, ob das Modul wo erwartet war, und es war tatsächlich, mit einer Ausgabe von:

%Vor%

Als nächstes haben wir versucht, Command in der Shell manuell zu importieren:

%Vor%

Kratzt immer noch am Kopf!

    
darko 10.08.2012, 23:41
quelle

2 Antworten

3

Wie sieht Ihre Dateistruktur aus? Es sollte so sein:

%Vor%

Wenn die Struktur wie oben beschrieben ist, versuchen Sie Folgendes:

%Vor%

Ich habe die reine Ausgabe von dir auf einem eigenen Verwaltungsbefehl aufgelistet. Probieren Sie es aus und berichten Sie, was für das Modul verfügbar ist. Sie könnten feststellen, dass an dieser Stelle ein Fehler auftritt, der zur Diagnose beitragen kann. Ich vermute ein Problem mit dem Import von Django. Ich schätze, dass python manage.py shell fehlschlägt, was bedeutet, dass es kein Problem mit Ihrem Befehl, sondern ein Problem mit dem Projekt ist.

Bearbeiten 2:

Die Tatsache, dass check_expiration in Ihrer dir -Ausgabe sichtbar war, unterstützt meine Theorie, dass die Ordnerstruktur irgendwie nicht stimmt. Es sei denn, es gibt speziell eine Funktion mit dem Namen in Ihrem Modul.

Bitte machen Sie folgendes und zeigen Sie die Ausgabe an:

%Vor%

Zeigen Sie auch den gesamten Inhalt Ihrer event_expiration.py -Datei und den Inhalt Ihrer management/commands/__init__.py -Datei an. Achten Sie auf Leerzeichen, die mit Tabs als Leerzeichen kombiniert sind.

    
Josh Smeaton 11.08.2012, 01:46
quelle
21

Ich stieß auf das gleiche Problem und das Problem war, dass meine Befehlsklasse nicht genau Command aufgerufen wurde, wie die Dokumentation sagt. Beispiel:

%Vor%     
Caumons 17.07.2013 13:53
quelle

Tags und Links