First, an excerpt from my models.py and the traceback: ---------------------------------------------------------
class Loc(models.Model): added = models.DateTimeField(auto_now_add=True) updated = models.DateTimeField(auto_now=True) name = models.CharField(max_length=100) alias = models.CharField(max_length=50) company = models.CharField('Provided by', max_length=100) address = models.CharField(max_length=255) phone = models.IntegerField('Contact Phone Number') email = models.EmailField('Contact Email', max_length=75) acct = models.CharField('Account Number(s)', max_length=255) cid = models.CharField('Circuit ID(s)', max_length=255) class APC(models.Model): added = models.DateTimeField(auto_now_add=True) updated = models.DateTimeField(auto_now=True) name = models.CharField(max_length=100) domain = models.CharField(max_length=255) ip = models.IPAddressField() nagios = models.BooleanField() switch = models.ForeignKey(Switches) loc = models.ForeignKey(Loc) snmp = models.BooleanField() class Switches(models.Model): added = models.DateTimeField(auto_now_add=True) updated = models.DateTimeField(auto_now=True) name = models.CharField(max_length=100) domain = models.CharField(max_length=255) ip = models.IPAddressField() nagios = models.BooleanField() apc = models.ForeignKey(APC) loc = models.ForeignKey(Loc) snmp = models.BooleanField() ----------------------------------------------------- Traceback (most recent call last): File "manage.py", line 11, in <module> execute_manager(settings) File "/usr/lib/python2.5/site-packages/django/core/management/ __init__.py", line 340, in execute_manager utility.execute() File "/usr/lib/python2.5/site-packages/django/core/management/ __init__.py", line 295, in execute self.fetch_command(subcommand).run_from_argv(self.argv) File "/usr/lib/python2.5/site-packages/django/core/management/ base.py", line 77, in run_from_argv self.execute(*args, **options.__dict__) File "/usr/lib/python2.5/site-packages/django/core/management/ base.py", line 95, in execute self.validate() File "/usr/lib/python2.5/site-packages/django/core/management/ base.py", line 122, in validate num_errors = get_validation_errors(s, app) File "/usr/lib/python2.5/site-packages/django/core/management/ validation.py", line 28, in get_validation_errors for (app_name, error) in get_app_errors().items(): File "/usr/lib/python2.5/site-packages/django/db/models/loading.py", line 128, in get_app_errors self._populate() File "/usr/lib/python2.5/site-packages/django/db/models/loading.py", line 57, in _populate self.load_app(app_name, True) File "/usr/lib/python2.5/site-packages/django/db/models/loading.py", line 72, in load_app mod = __import__(app_name, {}, {}, ['models']) File "/home/django/ipdb/../ipdb/nagios/models.py", line 15, in <module> class APC(models.Model): File "/home/django/ipdb/../ipdb/nagios/models.py", line 22, in APC switch = models.ForeignKey(Switches) NameError: name 'Switches' is not defined ---------------------------------------------------------- Basically, I'm putting together an IP address database that will update our network monitor, Nagios. I wanted to cover all my bases and make it all-inclusive. Each Switch is on a networked APC so I want it foreign keyed to the APC it's on. Each APC is networked and so connected to one of the switches in the other model, so I want a foreign key to the Switches model. I need the foreign keys to set up parenting in Nagios. I've confirmed that this is definately related to the order the models are placed in because reversing the order in models.py changes the name error to complain about the opposite model. Is there any way around this that I'm missing in the documentation? I suppose I can remove the foreign key and just make one of them an integer field and relate it manually. It'd just be easier to make django handle the table relations. Any suggestions? --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Django users" group. To post to this group, send email to django-users@googlegroups.com To unsubscribe from this group, send email to django-users+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/django-users?hl=en -~----------~----~----~----~------~----~------~--~---