Digamos que tengo dos aplicaciones Django:Django: ¿Hay alguna manera de tener el modelo "directo" en ManyToManyField en una aplicación diferente del modelo que contiene ManyToManyField?
- competiciones - que se encargará de datos de la competición
- entradas - que se encargará de la funcionalidad relacionada con los competidores que entran en competiciones
En el aplicación de competiciones Tengo un modelo que representa una sección de una competencia:
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')
quiero poner el modelo de entrada en la aplicación de las entradas:
class Entry(models.Model):
division = models.ForeignKey('Division')
competitor = models.ForeignKey(Competitor)
withdrawn = models.BooleanField(default=False)
¿Cómo resuelvo el de importación ... ... declaraciones, para que funcionen? Cuando pongo en las declaraciones de importación como from entries.models import Entry
consigo los modelos de estas aplicaciones ignoradas por syncdb (porque las importaciones son circulares) o cuando se quita uno o ambos de ellos se producen errores de validación:
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
entiendo por qué esto sucede, pero no tengo idea de cómo cambiar esto, para que funcione (sin recurrir a mover el modelo Entry a la aplicación de competiciones, lo que realmente no quiero hacer).
puede publicar la clase 'Competitor' – czarchaic