сбрасывает ошибку при обычном импорте на python django - PullRequest
0 голосов
/ 25 сентября 2019

У меня ошибка импорта.У меня есть Пользователь модель на models.py , я импортирую ее на serializers.py .Раньше все работало как надо, я даже работал с другими файлами и вдруг на serializers.py появляется ошибка.И извините за то, что я пишу на английском через google translate.

models.py

class User(AbstractBaseUser, PermissionsMixin):
phone_number = models.CharField('телефон номер', max_length=20, unique=True,db_index=True)
avatar = models.ImageField('Аватар', blank=True, null=True, upload_to=get_timestamp_path, default='images/user.png')
nickname = models.CharField('Никнейм', max_length=40, null=True, blank=True)
register_date = models.DateField('Дата регистрация', auto_now_add=True)
is_active = models.BooleanField('Активен', default=True)
is_admin = models.BooleanField('Суперпользователь', default=False)
region = models.ForeignKey(Region, verbose_name="", on_delete=models.CASCADE, null=True, blank=True)

def save(self, *args, **kwargs):
    super(User, self).save(*args, **kwargs)
    self.nickname = 'User' + str(self.id)
    super(User, self).save(*args, **kwargs)

def get_full_name(self):
    return self.phone_number

def is_staff(self):
    return self.is_admin

def get_short_name(self):
    return self.phone_number

def __str__(self):
    return self.phone_number

USERNAME_FIELD = 'phone_number'
REQUIRED_FIELDS = []

objects = UserManager()

class Meta:
    verbose_name= 'User'
    verbose_name_plural = 'Users'

serializers.py

from rest_framework import serializers
from .models import User

ошибка

File "/home/c2dent/afmoon/backend/afmoon/main/models.py", line 7, in <module>
from .utilities import get_timestamp_path
File "/home/c2dent/afmoon/backend/afmoon/main/utilities.py", line 8, in <module>
from .serializers import HouseSerializer, LandSerialzier, VacancySerializer, ResumeSerializer, SecondSerializer, PersonalsClothesSerializer, PersonalsShoesSerializeres, CommonProductDetail, AvtomobilSerialzier, ApartmentSerializer


File "/home/c2dent/afmoon/backend/afmoon/main/serializers.py", line 2, in <module>
from .models import User, BaseProduct, Avtomobil, Apartment, House, Land, Vacancy, Resume, Second, Personals_clothes, Personals_shoes
ImportError: cannot import name 'User

1 Ответ

0 голосов
/ 26 сентября 2019

У вас есть круговой импорт.Файл моделей импортирует утилиты, которые импортируют сериализаторы, которые, в свою очередь, импортируют модели.

Реструктурируйте файлы, чтобы импортировать это.Действительно ли утилиты должны импортировать сериализаторы?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...