2016-07-04 3 views
0

저는 초보자입니다. 나는 기본적인 소리일지도 모르는 질문을하고 싶습니다. 나는 장고 1.9에 대한 문서를 가지고 있습니다. 내가 학생 객체를 저장하려고하면Django는 아직 정의되지 않은 모델에 관계를 만듭니다.

@python_2_unicode_compatible 
class Student(models.Model): 
    name=models.CharField(max_length=50) 
    teachers=models.ForeignKey('Teacher') 

def __str__(self): 
    return self.name 

@python_2_unicode_compatible 
class Teacher(models.Model): 
    name=models.CharField(max_length=50) 

def __str__(self): 
    return self.name 

: 아직 정의되지 않은, 그것은 내가 그것을 시도보다 "당신은 모델이 아닌 모델 객체 자체의 이름을 사용할 수 있습니다"라고 말한다, 이것은 내 코드입니다 그것은 나에게 이런 오류를 준다 : "OperationalError : 테이블 latihan_student에는 teachers_id라는 이름의 열이 없다" 누군가 verry에게 감사하다고 설명 할 수 있을까? 나쁜 영어로 죄송합니다

답변

0

이것은 외래 키를 정의하는 방법과 관련이 없습니다. 테이블에 필드를 추가했습니다. 데이터베이스를 이주해야합니다.

+0

예. ./manage.py makemigrations [내 앱], ./manage.py sqlmigrate [내 앱] 0001 및 ./manage.py 마이그레이션을 마이그레이션했습니다. 그런 다음 다시 Student 객체를 저장하려고 시도하면 "IntegrityError : NOT NULL 제약 조건이 실패했습니다 : latihan_student.teachers_id"라는 오류 메시지가 다시 나타납니다. 궁금한 Iam jus는 정의되지 않은 모델에 대한 관계를 만드는 방법 ..... ..... –

+0

당신이 혼란 스럽다고 생각합니다. 문서에서는 모델을 작성하기 전에 ForeignKey 필드가 가리키는 모델을 정의 할 수 있도록 모델을 작성하는 방법에 대해 설명합니다. 나는 * 정의되지 않은 * 인스턴스 *와 관계를 만드는 것에 대해 이야기하고 있다고 생각합니다. 이것은 분명히 불가능합니다. –

+0

예, 당신은 rigtht ... 나는 어떤 교사 객체를 만들지 않았다. 나는 가장 최근의 실수를 만든다. 그리고 나는 하나의 선생님 객체를 만들고 또한 foreignkeyrelationship (null = True)에 키워드 인자를 추가하고 i를 수행한다. 그랬지 .... 많이 verry 고마워. –

0

업데이트하여 교사 모델을 다음과 같이

@python_2_unicode_compatible 
class Teacher(models.Model): 
    name=models.CharField(max_length=50) 
    teachers = models.CharField(max_length=50) 

이제 당신이 사용하고 다른 모델에서의 개체를 만들 수 있습니다. 개체를 만든 후에 이미 무언가를 말한 적이없는 데이터베이스에 항목이 있기 때문에 무결성 오류가 발생하므로 무결성 오류가 발생하는 필드에 null = True를 추가하십시오.

관련 문제