Как использовать функции модели 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)) 

One Solution collect form web for “Как использовать функции модели Django”

Мне нужно было импортировать Switch и Stack. Я изменился:

from buildings.models import Building from buildings.models import Building, Switch, Stack

  • Django Signal через Decorator по методу модели?
  • как добавить разрешения в Django в модели и протестировать его с помощью оболочки
  • Добавление пользовательской проверки модели Django
  • Nullable ForeignKeys и удаление экземпляра модели с ссылкой
  • django TransactionManagementError при использовании сигналов
  • Как изменить стандартную модель пользователя django для моих потребностей?
  • Настройка двух разных типов пользователей в Django 1.5 / 1.6
  • Упорядоченные списки в джанго
  • Как удалить кнопку «Добавить» в администраторе Django для конкретной модели?
  • UnicodeEncodeError при попытке конвертировать Django-модели в XML
  • Django NameError во время ссылки на многопользовательский режим
  •  
    Interesting Posts for Van-Lav

    Как я могу наложить символ на целое число во время запроса в ORM django?

    Многие проблемы с виртуальными виртуальными машинами python

    Возможно ли в OpenCV построить локальную кривизну в виде тепловой карты, представляющей «интересность» объекта?

    Google App Engine и Cloud SQL: потерянное соединение с сервером MySQL при «считывании исходного пакета связи»

    Сдвиньте массив numpy

    Есть ли что-нибудь, что мне нужно знать об использовании Tkinter и pygame вместе?

    Дважды нажмите в IOS Simulator Не работает

    Расширение STARTTLS не поддерживается сервером. Получение этой ошибки при попытке отправить электронное письмо через Django и частный адрес электронной почты

    обновить словарь с помощью динамических клавиш и значений в python

    Почему этот генератор python возвращает одно и то же значение каждый раз?

    Python: найдите список в составе членов другого списка (в порядке)

    Почему соединение в DB-API Python не имеет операции «начать»?

    Декораторы Python, которые являются частью базового класса, не могут использоваться для украшения функций-членов в унаследованных классах

    Как повторить попытку urllib2.request при сбое?

    OpenCV cv2.fillPoly vs. cv2.fillConvexPoly: ожидаемый тип данных для массива многоугольных вершин?

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