首页 > 解决方案 > 在 python django 上正常导入期间重置错误

问题描述

我有一个导入错误。我在models.py上有一个User模型,我在serializers.py上导入它。以前,一切正常,我什至使用其他文件,突然在serializers.py上出现错误。很抱歉我通过谷歌翻译的英文写作。

模型.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'

序列化程序.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

标签: pythondjangopython-3.xdjango-rest-framework

解决方案


您有一个循环导入。模型文件导入实用程序,它导入序列化程序,然后导入模型。

重组文件以导入它。实用程序真的需要导入序列化程序吗?


推荐阅读