Sie müssen die Aufgabe nicht selbst importieren. Versuchen Sie es mit dem folgenden
%Vor%In meinem models.py:
%Vor%In meiner tasks.py:
%Vor%Dies gibt Folgendes zurück:
Der Fehler verschwindet, wenn ich from core.models import Image
in tasks.py
auskommentiere, aber das wird offensichtlich ein Problem verursachen, da Image
hier keine Bedeutung hat. Ich habe versucht, es in create_thumbnail
zu importieren, es erkennt jedoch immer noch Image
nicht.
Ich habe irgendwo gelesen, dass normalerweise das Objekt selbst als Argument an eine Aufgabe übergeben werden kann und das würde mein Problem lösen. Ein Freund hat mir jedoch einmal gesagt, dass es die beste Vorgehensweise ist, so wenig Daten wie möglich in eine RabbitMQ-Nachricht zu senden. Um dies zu erreichen, versuche ich, die Bild-ID nur zu übergeben und sie dann erneut in der Aufgabe abzurufen. p>
1) Was versuche ich als Best Practice? Wenn ja, wie arbeite ich es aus?
2) Ich habe in allen Beispielen, die ich im Internet gefunden habe, bemerkt, dass sie die Aufgabe aus einer Sicht und niemals aus einem Modell ausführen. Ich versuche ein Miniaturbild zu erstellen, wenn ein neues Bild hochgeladen wird. Ich möchte create_thumbnail nicht in jeder Form / Ansicht aufrufen, die ich habe. Irgendeine Idee dazu? Wird eine Aufgabe von einem Modell ausgeführt, das nicht empfohlen oder allgemein üblich ist?
1) Was versuche ich als Best Practice? Wenn ja, wie arbeite ich es aus?
Ja, nur ein paar Informationen an die Aufgabe zu übergeben, ist im Allgemeinen eine gute Sache, wie Sie erwähnt haben.
2) Ich habe in allen Beispielen, die ich im Internet gefunden habe, bemerkt, dass sie die Aufgabe aus einer Sicht und niemals aus einem Modell ausführen. Ich versuche ein Miniaturbild zu erstellen, wenn ein neues Bild hochgeladen wird. Ich möchte create_thumbnail nicht in jeder Form / Ansicht aufrufen, die ich habe. Irgendeine Idee dazu? Wird eine Aufgabe von einem Modell ausgeführt, das nicht empfohlen oder allgemein üblich ist?
Ich habe das Gleiche bemerkt und fühle, dass Tutorials und Dokumentationen Tasks aus ihren Ansichten aufrufen, weil es einfacher ist zu demonstrieren, wie Dinge mit einfachen Views funktionieren als mit Modellen oder Formularen.
Um Kreisimporte zu vermeiden, sollten Sie darüber nachdenken, in welcher Weise die Importe passieren sollten. Im Allgemeinen muss task.py viele Dinge aus models.py importieren, während models.py selten etwas über task.py wissen muss. Der Standard sollte sein, dass models.py nicht von tasks.py importiert wird. Wenn Sie dies tun müssen und eine Aufgabe über eine Modellmethode aufrufen, müssen Sie den Import in der Methode folgendermaßen durchführen:
%Vor%Sie müssen die Aufgabe nicht selbst importieren. Versuchen Sie es mit dem folgenden
%Vor%Ich frage mich, ob das Problem ein zirkulärer Import sein könnte ( %code% und %code% importieren sich gegenseitig auf der obersten Ebene). versuche, " %code% " in %code% zu verschieben, d. h. %code% zu
zu ändern %Vor%In meinem models.py:
%Vor%In meiner tasks.py:
%Vor%Dies gibt Folgendes zurück:
Der Fehler verschwindet, wenn ich %code% in %code% auskommentiere, aber das wird offensichtlich ein Problem verursachen, da %code% hier keine Bedeutung hat. Ich habe versucht, es in %code% zu importieren, es erkennt jedoch immer noch %code% nicht.
Ich habe irgendwo gelesen, dass normalerweise das Objekt selbst als Argument an eine Aufgabe übergeben werden kann und das würde mein Problem lösen. Ein Freund hat mir jedoch einmal gesagt, dass es die beste Vorgehensweise ist, so wenig Daten wie möglich in eine RabbitMQ-Nachricht zu senden. Um dies zu erreichen, versuche ich, die Bild-ID nur zu übergeben und sie dann erneut in der Aufgabe abzurufen. p>
1) Was versuche ich als Best Practice? Wenn ja, wie arbeite ich es aus?
2) Ich habe in allen Beispielen, die ich im Internet gefunden habe, bemerkt, dass sie die Aufgabe aus einer Sicht und niemals aus einem Modell ausführen. Ich versuche ein Miniaturbild zu erstellen, wenn ein neues Bild hochgeladen wird. Ich möchte create_thumbnail nicht in jeder Form / Ansicht aufrufen, die ich habe. Irgendeine Idee dazu? Wird eine Aufgabe von einem Modell ausgeführt, das nicht empfohlen oder allgemein üblich ist?
1) Was versuche ich als Best Practice? Wenn ja, wie arbeite ich es aus?
Ja, nur ein paar Informationen an die Aufgabe zu übergeben, ist im Allgemeinen eine gute Sache, wie Sie erwähnt haben.
2) Ich habe in allen Beispielen, die ich im Internet gefunden habe, bemerkt, dass sie die Aufgabe aus einer Sicht und niemals aus einem Modell ausführen. Ich versuche ein Miniaturbild zu erstellen, wenn ein neues Bild hochgeladen wird. Ich möchte create_thumbnail nicht in jeder Form / Ansicht aufrufen, die ich habe. Irgendeine Idee dazu? Wird eine Aufgabe von einem Modell ausgeführt, das nicht empfohlen oder allgemein üblich ist?
Ich habe das Gleiche bemerkt und fühle, dass Tutorials und Dokumentationen Tasks aus ihren Ansichten aufrufen, weil es einfacher ist zu demonstrieren, wie Dinge mit einfachen Views funktionieren als mit Modellen oder Formularen.
Um Kreisimporte zu vermeiden, sollten Sie darüber nachdenken, in welcher Weise die Importe passieren sollten. Im Allgemeinen muss task.py viele Dinge aus models.py importieren, während models.py selten etwas über task.py wissen muss. Der Standard sollte sein, dass models.py nicht von tasks.py importiert wird. Wenn Sie dies tun müssen und eine Aufgabe über eine Modellmethode aufrufen, müssen Sie den Import in der Methode folgendermaßen durchführen:
%Vor%