circular-dependency

___ answer26411453 ___

Verwenden Sie Signale.

tasks.py

%Vor%

models.py

%Vor%     
___ qstntxt ___

Ich habe eine Django-App, die Sellerie verwendet, um einige Aufgaben zu entfernen. Hauptsächlich wird die Berechnung einiger Felder in einer Datenbanktabelle verschoben.

Also, ich habe eine task.py:

%Vor%

Und in models.py

%Vor%

Nun wird das natürlich nicht funktionieren wegen eines zirkulären Imports ( %code% imports %code% und %code% imports %code% ).

Ich habe das für den Moment gelöst, indem ich %code% von %code% aufgerufen habe, aber es scheint sinnvoll zu sein, die Modelllogik innerhalb der Modellklasse zu belassen. Gibt es einen besseren Weg, dies zu tun?

    
___ qstnhdr ___ Aufhebung der Kreisimporte in Sellerie und Django ___ tag123python ___ Python ist eine dynamische und stark typisierte Programmiersprache, die die Usability betont. Zwei ähnliche, aber größtenteils inkompatible Versionen von Python sind weit verbreitet (2 und 3). Wenn Sie eine versionsspezifische Python-Frage haben, sollten Sie die Tags [python-2.7] oder [python-3.x] zusätzlich zum Tag [python] verwenden. Wenn Sie eine Python-Variante wie jython, pypy, iron-python usw. verwenden, kennzeichnen Sie diese bitte entsprechend. ___ tag123cellery ___ Sellery ist ein verteiltes Aufgabenwarteschlangen-Framework für Python, das für die asynchrone und parallele Ausführung verwendet wird. ___ tag123django ___ Django ist ein serverseitiges Open-Source-Webanwendungs-Framework, das in Python geschrieben wurde. Es wurde entwickelt, um den Aufwand für die Erstellung komplexer datengesteuerter Websites und Webanwendungen zu reduzieren, mit besonderem Fokus auf weniger Code, keine Redundanz und expliziter als implizit. ___ answer30397422 ___

Die Lösung von joshua ist sehr gut, aber als ich es zum ersten Mal probiert habe, habe ich festgestellt, dass meine %code% Decorators keinen Effekt hatten. Das war, weil das Modul %code% nicht irgendwo importiert wurde, was erwartet wurde, da ich Automatische Erkennung der Aufgabe .

Es gibt jedoch eine andere Möglichkeit, %code% von %code% zu entkoppeln. Tasks können namentlich gesendet werden und müssen nicht in dem Prozess, der sie sendet, ausgewertet (importiert) werden:

%Vor%

%code% ist eine Methode für Sellery-App-Objekte.

Bei dieser Lösung ist es wichtig, auf korrekte Angaben zu achten , vorhersagbare Namen für Ihre Aufgaben.

    
___ answer43530409 ___

Um nur eine weitere nicht großartige Lösung in diese Liste zu packen, stütze ich mich auf django's jetzt eingebaute App-Registry .

Also in %code% , anstatt von Modellen zu importieren, verwenden Sie %code% , um Zugriff auf das Modell zu erhalten.

Ich mache das mit einer Hilfsmethode mit einer gesunden Dokumentation, nur um auszudrücken, warum das schmerzhaft ist:

%Vor%

Und dann:

%Vor%

Du könntest einfach %code% direkt verwenden.

    
___ tag123djangocellery ___ Django-Sellerie bietet Sellerie-Integration für Django. ___ tag123circularcompendency ___ circular Abhängigkeit ist eine Beziehung zwischen zwei oder mehr Modulen, die entweder direkt oder indirekt voneinander abhängig sind, um richtig zu funktionieren. ___ answer26382812 ___

In Ihren Modellen können Sie den %code% am Anfang der Datei importieren, bevor Sie ihn verwenden. Es löst das zirkuläre Importproblem.

%Vor%

Alternativ können Sie auch in Ihrem %code% dasselbe tun. Sie können Ihre Modelle unmittelbar vor der Verwendung importieren, anstatt sie zu beginnen.

Alternative:

Sie können die Methode %code% verwenden, um Ihre Aufgabe aufzurufen

%Vor%     
___
1
Antwort

Wie man zirkuläre Abhängigkeiten zwischen Repositories bricht

Um zu beginnen, nein, ich benutze kein ORM und darf es auch nicht. Ich muss meine Repositories mit ADO.NET manuell rollen. Ich habe zwei Objekte: %Vor% Beachten Sie die Referenzen zueinander, eine Firma hat eine Liste von Benutzern, jeder...
09.03.2012, 16:23
3
Antworten

Android Gradle Build- und Circular-Abhängigkeit

Ich habe ein Android-Projekt in IntelliJ IDEA. Es besteht aus zwei Modulen: App und Bibliothek. App hängt von der Bibliothek ab und die Bibliothek hängt von der App ab (Ja, es ist nicht gut, aber ich habe was ich habe und kann das nicht ändern)....
02.08.2013, 14:44
3
Antworten

Circular Abhängigkeiten in Modulen mit requireJs

Lesen der requirJs-Dokumentation, Um die Circular Dependencies zu beheben, wird empfohlen, exports zu verwenden, um ein leeres Objekt für das Modul zu erstellen, das sofort für andere Module verfügbar ist. Ich versuche diesen Code, aber e...
29.06.2012, 15:41
4
Antworten

Warum gibt es kein zyklisches Layout-Problem für Klassen in C #?

%Vor%    Ursachen:       Strukturelement 'Unit.u' vom Typ 'Unit' verursacht einen Zyklus in der Struktur   Layout. Aber %Vor% kompiliert. Ich verstehe das Problem, das ich vermute. Ein endloser Zyklus wird gebildet, wenn auf ein Objekt...
13.01.2013, 23:04
8
Antworten

zirkuläre Abhängigkeiten zwischen DLLs mit Visual Studio

Ich habe eine zirkuläre Abhängigkeit zwischen zwei Funktionen. Ich möchte, dass jede dieser Funktionen in einer eigenen DLL liegt. Ist es möglich, dies mit Visual Studio zu erstellen? %Vor% - & gt; sollte in foo.dll kompilieren %Vor% - &...
12.12.2008, 13:59
2
Antworten

Lua: Wie man Circular Requires vermeidet

Problem Wie kann ich den folgenden Fehler von Lua 5.1 vermeiden, wenn ich versuche, eine zirkuläre Anforderung zu stellen? %Vor% Dateistruktur main.lua %Vor% foo.lua %Vor% bar.lua %Vor% Erwartete Ausgabe %Vor%     
20.12.2012, 03:16
6
Antworten

Auflösung der zirkulären Abhängigkeit

Ich habe zwei Klassenprojekte in einer Visual Studio-Lösung. Aufgrund der Art des Projekts verweisen beide Projekte aufeinander, weil sie die Dienste des jeweils anderen brauchen (denke an den Satz "Ich kratze deinen Rücken, du kratzst an mir")....
28.12.2010, 18:26
3
Antworten

Umgang mit einer zirkulären Abhängigkeit

Ich frage mich, ob jemand Ratschläge geben kann, um eine zirkuläre Abhängigkeit zwischen zwei Klassen in Java zu brechen! FindBugs schlägt die Verwendung von Schnittstellen vor, also frage ich mich, ob jemand gute Erfahrungen mit dieser Art von...
30.03.2011, 17:52
7
Antworten

Datenbankdesign: Kreisförmige Abhängigkeit

Stellen Sie sich die folgende Datenbank vor: Tabelle 'Firmen' hat Felder ID, Name und Flaggschiff_Produkt_ID. Tabelle 'Produkte' haben Felder ID, Name und Firmen-ID. Ein Unternehmen muss ein Flaggschiffprodukt (1: 1-Beziehung) haben und al...
07.09.2009, 01:52
2
Antworten

Spring zirkuläre Abhängigkeit mit Setter

Ich habe gelesen, dass ich, um zirkuläre Abhängigkeiten zu vermeiden, @Autowired auf Setter anstelle von Konstruktoren verwenden kann. Wenn ja, warum scheitert das? %Vor% Wenn ich die A -Klasse ähnlich wie B definiere, ist alles...
03.03.2013, 18:10