Modelos de Django: referencias mutuas entre dos clases e imposibilidad de usar la statement hacia adelante en python

He definido dos modelos donde cada uno hace referencia al otro, así:

class User(models.Model): # ... loves = models.ManyToManyField(Article, related_name='loved_by') class Article(models.Model): # ... author = models.ForeignKey(User) 

Usted ve, el problema es que las dos clases se hacen referencia entre sí. No importa en qué orden se implementen estas dos clases, Python siempre genera la excepción NameError , ya que una de las clases no está definida.

Puedes encontrar la solución en los documentos :

Si necesita crear una relación en un modelo que aún no se ha definido, puede usar el nombre del modelo, en lugar del propio objeto del modelo:

 class Car(models.Model): manufacturer = models.ForeignKey('Manufacturer') # ... class Manufacturer(models.Model): # ...