2010-11-22 3 views
1

장고 문서 말 : CommonInfo와 학생이 다른 파일에있는 경우클래스가 다른 파일에있는 경우 Django 메타 클래스를 확장하는 방법은 무엇입니까?

class CommonInfo(models.Model): 
    ... 
    class Meta: 
     abstract = True 
     ordering = ['name'] 

class Student(CommonInfo): 
    ... 
    class Meta(CommonInfo.Meta): 
     db_table = 'student_info' 

하지만 어떻게 내가이 처리하나요? 순간, 내 학생 파일을 찾습니다

from CommonInfo import CommonInfo 
class Student(CommonInfo): 
    ... 
    class Meta(CommonInfo.Meta): 
     db_table = 'student_info' 

하지만 그건 던지고

같은 :

답변

2

Model에 사용되는 메타 클래스는에서 Meta 내부 클래스 스트립 'AttributeError Type 개체 "CommonInfo는"어떤 속성이 없다 "메타"를' 클래스 정의이므로 나중에 사용하기 위해이 방식으로 사용할 수 없습니다. 별도의 클래스로 정의하고 다른 클래스가 필요할 경우 Meta 클래스 속성에 할당하십시오.

+0

Django는 비 추상적 모델 클래스에서 Meta 내부 클래스 만 제거한다고 생각했습니다. – Erik

+2

@Erik : 그것은'_meta' 속성으로 대체합니다. 그러나 이것은'Meta' 내부 클래스의 값만 사용하며 직접 연관되지 않습니다. –

+2

제임스 베넷 (James Bennet)은 이러한 행동에 대한 좋은 요약을했습니다 : http://www.b-list.org/weblog/2007/nov/04/working-models/ – Erik

관련 문제