ImportError:无法导入名称而无法导入类
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ImportError:无法导入名称而无法导入类相关的知识,希望对你有一定的参考价值。
我从github得到了一个完整的代码,一切都很好,服务器工作没有任何问题。但后来我尝试做一些更改,比如在model.py
中添加一个新类并尝试将其导入admin.py
我遇到了这样的错误:
ImportError:无法导入名称TechnicalExamination。
当然,我之前使用python manage.py makemigrations
和python manage.py migrate
进行了迁移。
这是我在models.py中的类:
class HealthExamination(models.Model):
class Meta:
verbose_name_plural = 'Health Examinations'
doctor = models.CharField(max_length=70)
person = models.ForeignKey(Person, on_delete=models.CASCADE)
start_date = models.DateField()
end_date = models.DateField()
class TechnicalExamination(models.Model):
class Meta:
verbose_name_plural = 'Technical Examinations'
technician = models.CharField(max_length=70)
person = models.ForeignKey(Person, on_delete=models.CASCADE)
start_date = models.DateField()
end_date = models.DateField()
def get_fields(self):
pairs = []
for field in self._meta.fields:
name = field.name
try:
pairs.append((name, getattr(self, "get_%s_display" % name)()))
except AttributeError:
pairs.append((name, getattr(self, name)))
return pairs
def __str__(self):
return str(self.person)
这是我的admin.py:
from __future__ import unicode_literals
from django.contrib import admin
from .models import Person, Car, InsuranceCompany, Policy, HealthExamination, TechnicalExamination
admin.site.register(Person)
admin.site.register(Car)
admin.site.register(InsuranceCompany)
admin.site.register(Policy)
admin.site.register(HealthExamination)
admin.site.register(TechnicalExamination)
这是我的根:
答案
- 检查迁移文件 - 您应该在操作中包含CreateModel您的TechnicalExamination
operations = [ migrations.CreateModel( name='TechnicalExamination', ...
如果迁移文件出现问题,请再次删除迁移目录和makemigration(您可能还需要清除数据库)或使用--fake
- 从django shell导入:
$python manage.py shell > from your_app_name.models import TechnicalExamination
如果未导入,您可以查看更多详细信息错误消息并进行调试。
- 尝试通过
from destrict_office.models import TechnicalExamination
导入
我在使用.models
导入方法时遇到了一些问题,并不清楚导入方法。
以上是关于ImportError:无法导入名称而无法导入类的主要内容,如果未能解决你的问题,请参考以下文章
ImportError:无法导入名称“AFAVSignature”
ImportError:无法导入名称 VarianceThreshold