2017-12-18 13 views
0

github에서 전체 코드를 받았는데 문제가 없어도 서버가 정상적으로 작동했습니다. 그러나 나는 model.py에 새로운 클래스를 추가하고 admin.py로 가져 오려는 것처럼 이와 같은 오류가있어 일부 변경을 시도 : 나는이 전에 마이그레이션을했다, 물론ImportError : 이름을 가져올 수 없으며 클래스를 가져올 수 없습니다.

ImportError: cannot import name TechnicalExamination.

python manage.py makemigrations를 사용하여 python manage.py migrate. 여기

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) 

그리고 여기 내 루트 :

enter image description here

+0

'TechnicalExamination'과 같은 소리는 다른 클래스와 동일한 수준에서 정의되지 않습니다. –

+0

TechnicalExamination은 HealthExaminations와 같은 models.py에 있습니다. 그러나 첫 번째 기능은 작동하지 않으며 두 번째 기능은 작동하지 않습니다. – Viola

+0

물론,'def __str__'는 질문에 정확하게 들여 쓰기되어 있지 않으므로 파일에 적어도 두 개의 모델을 보여줄 수 있습니까? 그 중 하나와 그 하나? –

답변

0
    다음

    는 models.py 내 클래스입니다
  1. 확인 마이그레이션 파일 - 당신은 작업 CreateModel 당신의 TechnicalExamination를 포함해야

    operations = [ 
        migrations.CreateModel(
         name='TechnicalExamination', 
    ... 
    

    마이그레이션 파일에 문제 다시 마이그레이션 디렉토리와 makemigration를 제거하면 사용하거나 (당신도, 당신의 데이터베이스를 삭제해야 할 수도 있습니다) --fake

  2. 장고 쉘에서 수입 : 수입하지 않으면

    $python manage.py shell 
    > from your_app_name.models import TechnicalExamination 
    

, 당신은 더 자세히 전자를 볼 수 있습니다 오류 메시지를보고 디버그하십시오.

    나는 .models 가져 오기 방법 몇 가지 문제를 경험하고 명확 수입 방법이 아니다 from destrict_office.models import TechnicalExamination

에 의해

  • 한번에 가져 오기를.

  • +0

    또한 재귀 가져 오기에 대한 몇 가지 가능성이 있지만 재귀 수입을 유발하는 코드를 볼 수 없습니다. models.py에서 다른 모델의 재귀 가져 오기가 없다는 것을 확인하십시오. – seuling