如何使用Django模型函数

2024-10-01 07:40:32 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个应用程序,下面列出了几个型号:

devices.Device
buildings.Building
buildings.Stack
buildings.Switch
rooms.Room

在我的程序中,我接受带有数据的CSV文件。然后我将其解析为代表每个模型的JSON,并使用get_or_create()将数据添加到数据库中。下面是一个例子:

^{pr2}$

上面的方法效果很好。但是,我尝试了以下代码,但无法使其正常工作:

^{3}$

导致此错误的原因:

Traceback:
File "/usr/lib/python2.6/site-packages/django/core/handlers/base.py" in get_response
  111.                         response = callback(request, *callback_args, **callback_kwargs)
File "/usr/lib/python2.6/site-packages/django/contrib/auth/decorators.py" in _wrapped_view
  20.                 return view_func(request, *args, **kwargs)
File "/usr/lib/python2.6/site-packages/django/contrib/auth/decorators.py" in _wrapped_view
  20.                 return view_func(request, *args, **kwargs)
File "/opt/cutsheets/cutsheets/views.py" in import_data
  156.             output = process_xls_data(temp_dir)
File "/opt/cutsheets/cutsheets/views.py" in process_xls_data
  113.                     obj, created = Switch.objects.get_or_create(

Exception Type: NameError at /import
Exception Value: global name 'Switch' is not defined

我怀疑这与模型的构造方式有关(这不是我做的)。{I>建议任何人使用cd3>来修改}代码?在

还有,这是来自/建筑物的堆栈和交换机/模型.py公司名称:

class Switch(models.Model):
stack = models.ForeignKey(Stack, null=True, related_name='switches')
number = models.PositiveIntegerField()
ip = models.IPAddressField()
num_ports = models.PositiveIntegerField()

def __unicode__(self):
    return unicode(self.number)

@models.permalink
def get_absolute_url(self):
    return ('buildings.views.switch', (self.stack.building.number, self.stack.number, self.number))


class Stack(models.Model):
    building = models.ForeignKey(Building, related_name='stacks')
    number = models.PositiveIntegerField()
    num_switches = models.PositiveIntegerField()

def __unicode__(self):
    return unicode(self.number)

@models.permalink
def get_absolute_url(self):
    return ('buildings.views.stack', (self.building.number, self.number))

Tags: inpyselfviewnumbergetreturnstack