Ok Así que estoy TRATANDO de escribir un buen código organizado y realmente hacer aplicaciones separadas de django en lugar de agrupar todo en 1. Mi problema es que tengo 3 aplicaciones que cada referencia hace referencia a otro modelo del próxima aplicación Así que, básicamente, tengo un bucle infinito, la aplicación A necesita saber acerca de B.models.something1, la aplicación B necesita saber acerca de C.models.Somthing2, y la aplicación C necesita saber acerca de A.models.something3. Esto, por supuesto, no se ejecutará, para aquellos que se preguntan si esto es realmente un problema :). ¿Hay algo que se asemeje a una predeclaración de clases, así que Python sabrá que las clases realmente existen?Django/Python Referencia de modelo circular
Gracias.
EDITAR: Más Código: Lamentablemente, la naturaleza y los modelos de mi proyecto son confidenciales, así que tendré que cambiar los nombres para reflejar algo completamente diferente, pero el código seguirá siendo el mismo.
maestro/models.py
from django.db import models
from myapp.student.models import *
from django.contrib.auth.models import User
class Teacher(models.Model):
"""(description)"""
user = models.ForeignKey(User)
name = models.CharField(max_length=100)
phone = models.CharField(max_length=13)
phone_ext = models.CharField(blank=True, max_length=5)
fax = models.CharField(blank=True, max_length=13)
fax_ext = models.CharField(blank=True, max_length=100)
url = models.URLField(blank=True, verify_exists=True)
complaint = models.ManyToManyField(Complaint)
city = models.CharField(blank=True, max_length=100)
state = models.CharField(blank=True, max_length=100)
postal_code = models.CharField(blank=True, max_length=15)
location = models.ManyToManyField(Location)
def __unicode__(self):
return self.name
class Location(models.Model):
"""(description)"""
city = models.CharField(blank=True, max_length=100)
state = models.CharField(blank=True, max_length=100)
country = models.CharField(blank=False, max_length=100)
def __unicode__(self):
return self.city + ", " + self.state +", "+self.country
estudiante/models.py escuela
from django.db import models
from django.contrib.auth.models import User
from myapp.school.models import School
class Student(models.Model):
"""(Student description)"""
user = models.ForeignKey(User)
country = models.CharField(max_length=100)
state = models.CharField(max_length=100)
city = models.CharField(max_length=100)
locale = models.CharField(blank=False, max_length=5)
learningtype = models.CharField(blank=True, max_length=100)
sites = models.TextField(blank=True)
def __unicode__(self):
return str(self.user)
class Complaint(models.Model):
"""(Complaint description)"""
student = models.ForeignKey(Student)
site = models.ForeignKey(School)
complaint = models.TextField(blank=False)
def __unicode__(self):
return str(self.site)
/models.py
from django.db import models
from myapp.teacher.models import Location
class School(models.Model):
"""(School description)"""
name = models.CharField(max_length=100)
url = models.URLField(verify_exists=True)
img = models.ImageField(upload_to="casion_img/")
rating = models.FloatField()
description = models.CharField(blank=True, max_length=300)
goodstanding = models.BooleanField(default=True)
location = models.ForeignKey(Location)
def __unicode__(self):
return self.name
Así que aquí es lo que estoy haciendo:
Archivo "/ Users/userzero/dj ango/myapp/school/models.py ", línea 2, en desde teacher.models import Ubicación Archivo" /Users/userzero/django/myapp/teacher/models.py ", línea 2, en desde student.models import Complaint Archivo "/Users/userzero/django/myapp/student/models.py", línea 3, en de school.models import School Archivo "/Users/userzero/django/myapp/casino/models.py" , línea 2, en de teacher.models importar la ubicación ImportError: no se puede importar nombre de la ubicación
Los ciclos de importación no son necesariamente un problema. Pero sin más código no podemos descubrir qué es realmente. –