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 [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/django-users?hl=en
-~----------~----~----~----~------~----~------~--~---