Как использовать функции модели Django

У меня есть приложение с несколькими моделями, перечисленными ниже:

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

В моей программе я принимаю CSV файл с данными. Затем я разбираю его в JSON представляющем каждую модель, и использую get_or_create() для добавления данных в базу данных. Вот пример:

  obj, created = Building.objects.get_or_create( name=entry["fields"]["name"], number=entry["fields"]["number"]) if created: output += "Building was created!\n" else: output += "Building already exists!\n" 

И выше работает хорошо. Однако я попробовал код ниже и не мог заставить его работать:

  obj, created = Switch.objects.get_or_create( stack=entry["fields"]["stack"], number=entry["fields"]["number"], ip=entry["fields"]["ip"], num_ports=entry["fields"]["num_ports"]) if created: output += "Switch was created!\n" else: output += "Switch already exists!\n" 

Что вызывает эту ошибку:

 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 

Я подозреваю, что это связано с тем, как модели построены (что не было сделано мной). Может ли кто-нибудь предложить, как изменить приведенный выше код, чтобы я мог вставлять коммутаторы и стеки с помощью get_or_create() ?

И вот вот стек и переключитесь с /buildings/models.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)) 

 
Interesting Posts for Van-Lav

открыть cv python при попытке найти углы шахматной доски

Изменение пароля в Django Admin

Являются ли python «глобальными» (модульными) переменными нитями локальными?

Как преобразовать арабский текст из PyQt4 в UTF-8

Каков самый чистый способ остановить работу многопроцессора python, подключенного к очереди в бесконечном цикле?

Аутентификация Google Apps на основе python Gdata

Например, запрос: повторяющаяся нейронная сеть для прогнозирования следующего значения в последовательности

Как я могу сделать вывод одной программы и использовать ее как входной сигнал другого?

запуск Python IDLE из командной строки для редактирования скриптов

Копировать конструктор в python

Как ускорить Pandas многоуровневую сумму данных?

Сохранение и загрузка объектов и использование рассола

Python и Pandas: сортировка каждой строки в мультииндексе DataFrame

SQL Update, но используя pyodbc

имя файла vs file object как аргумент функции

Python - лучший язык программирования в мире.