Уведомления

Группа в Telegram: @pythonsu

#1 Март 31, 2016 12:47:19

Elaphe
Зарегистрирован: 2015-02-04
Сообщения: 125
Репутация: +  5  -
Профиль   Отправить e-mail  

Не импортируется класс из models

Пишу первое свое (в смысле - не по мотивам учебников) приложение.
До недавнего времени все шло хорошо. Но сейчас вылетает Internal server error. В консоли ошибка:

  File "c:\Django\mr\pets\views.py", line 5, in <module>
from . models import Pets, Events
ImportError: cannot import name 'Pets'

Не могу понять, почему, раньше все работало и в views.py ничего во время появления ошибки не менялось (только дописывалась функция в models.py)

models.py с классом Pets, на который ругается сервер:

#coding: utf8
import datetime
from django.db import models
from django.utils import timezone
from django.contrib import admin
from django.contrib.auth.models import User
from django.core.urlresolvers import reverse
from . import views
class Pets(models.Model):
	Gen = (
		('0', 'Неизвестно'),
		('1', 'Самец'),
		('2', 'Самка'))
	u_name = models.ForeignKey(User)
	pet_name = models.CharField('Имя питомца', max_length=20)
	species = models.ForeignKey(Species, on_delete=models.DO_NOTHING, 
		null = True, verbose_name = 'Вид животного', related_name = 'keepers')
	morph = models.CharField('Морфа',max_length=50, blank = True)
	gender = models.CharField('Пол',max_length=1, choices = Gen)
	birth_date = models.DateField('Дата рождения',null = True)
	fed_freq = models.DurationField('Частота кормления',null = True)
	pet_comment = models.TextField('Комментарий',blank = True)
	def get_absolute_url(self):
		return reverse(views.PetDetailView, kwargs={'pk': self.pk}) 
	class Meta(object):
		ordering = ['pet_name']
		verbose_name = 'Pet'
		verbose_name_plural = 'Pets'

views.py не вижу смысла приводить полностью, строка импорта, на которую ругается сервер, вот:

from . models import Pets, Events

Куда копать? Вообще ума не приложу, вроде все выглядит корректно.
Дайте наводку, плиз.

Офлайн

#2 Март 31, 2016 12:52:33

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

Не импортируется класс из models

Elaphe
from . import views
from . models import Pets
Циклический импорт?



Офлайн

#3 Март 31, 2016 13:04:37

Elaphe
Зарегистрирован: 2015-02-04
Сообщения: 125
Репутация: +  5  -
Профиль   Отправить e-mail  

Не импортируется класс из models

Попробовала изменить код модели.
Сейчас так:

import datetime
from django.db import models
from django.utils import timezone
from django.contrib import admin
from django.contrib.auth.models import User
from django.core.urlresolvers import reverse
class Pets(models.Model):
	Gen = (
		('0', 'Неизвестно'),
		('1', 'Самец'),
		('2', 'Самка'))
	u_name = models.ForeignKey(User)
	pet_name = models.CharField('Имя питомца', max_length=20)
	species = models.ForeignKey(Species, on_delete=models.DO_NOTHING, 
		null = True, verbose_name = 'Вид животного', related_name = 'keepers')
	morph = models.CharField('Морфа',max_length=50, blank = True)
	gender = models.CharField('Пол',max_length=1, choices = Gen)
	birth_date = models.DateField('Дата рождения',null = True)
	fed_freq = models.DurationField('Частота кормления',null = True)
	pet_comment = models.TextField('Комментарий',blank = True)
	def get_absolute_url(self):
		return  '/%i' % self.id  
	class Meta(object):
		ordering = ['pet_name']
		verbose_name = 'Pet'
		verbose_name_plural = 'Pets'
Все равно не работает, хотя циклического импорта нет.

Отредактировано Elaphe (Март 31, 2016 13:05:00)

Офлайн

#4 Март 31, 2016 13:14:15

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

Не импортируется класс из models

А если точку убрать?



Офлайн

#5 Март 31, 2016 14:37:39

Elaphe
Зарегистрирован: 2015-02-04
Сообщения: 125
Репутация: +  5  -
Профиль   Отправить e-mail  

Не импортируется класс из models

Перезапустила сервер вручную, все заработало. Оказывается, в консоли выдавались строки:

File “c:\Django\mr\pets\models.py”, line 9, in <module>
from . import views
Несмотря на то, что этот импорт в models.py был убран. Видимо, сервер почему-то не подгружал обновленный models.py.
Спасибо за помощь.

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version