Lets sagen, dass ich zwei django Anwendungen haben:Django: Gibt es eine Möglichkeit, das "Through" -Modell in einem ManyToManyField in einer anderen App als das Modell zu haben, das das ManyToManyField enthält?
- Wettbewerbe - die Kompetitionsdaten
- Einträge behandelt - die Funktionalität in Bezug auf die Eingabe Konkurrenten in Wettbewerben
In der Griff Wettbewerbe App Ich habe ein Modell, das einen Abschnitt eines Wettbewerbs darstellt:
class Division(models.Model):
competition = models.ForeignKey(Competition)
discipline = models.CharField(max_length=1, choices=DISCIPLINE_CHOICES)
age_group = models.ForeignKey(AgeGroup)
participants = models.ManyToManyField(Competitor, through='Entry')
ich das Einstiegsmodell in die Einträge App setzen wollen:
class Entry(models.Model):
division = models.ForeignKey('Division')
competitor = models.ForeignKey(Competitor)
withdrawn = models.BooleanField(default=False)
Wie löse ich das aus ... Import ... Anweisungen, damit sie funktionieren? Als ich in der Import-Anweisungen wie from entries.models import Entry
gestellt bekomme ich die Modelle von diesem durch syncdb ignoriert Apps (weil die Importe sind kreisförmig) oder wenn ich eine von ihnen oder beide entferne ich Validierungsfehler erhalten:
Error: One or more models did not validate: entries.entry: 'division' has a relation with model Division, which has either not been installed or is abstract. competitions.division: 'participants' specifies an m2m relation through model Entry, which has not been installed
Ich verstehe, warum das passiert, aber ich habe keine Ahnung, wie ich das ändern soll, damit es funktioniert (ohne das Entry-Modell in die App für Wettbewerbe zu verschieben, was ich wirklich nicht tun möchte).
können Sie Beiträge verfassen die 'Competitor' Klasse? – czarchaic