2009-11-12 4 views
1

장고에 Google App Engine 도우미를 사용하고 있습니다. 이 도우미는 템플릿에 다음 줄을 포함합니다.appengine_django BaseModel과 db.Model 사이의 차이점

from appengine_django.models import BaseModel 
from google.appengine.ext import db 

# Create your models here. 

db.Model 또는 BaseModel에서 모델을 파생해야합니까? 나는 둘 다 시도해 본 결과 아무런 차이가 없다. 장고 양식을 사용하는 경우에도 둘 다 작동하는 것 같습니다. BaseModel 가져 오기를 삭제하지 않고 db.Model에서 모든 모델을 파생시키지 않을 이유가 있습니까?

답변

0

BaseModel은 장고 도우미가 정의한 클래스입니다. 그것은 장고가 더 잘 작동하도록 db.Model을 확장합니다. 두 가지 모두 가져 오기해야하는 이유는 속성 클래스가 여전히 db에서 직접 사용되기 때문입니다. 그러나 BaseModel 대신 db.Model을 사용하면 예상대로 작동하지 않는 Django의 일부 기능을 찾을 수 있습니다.

+0

예를 들어, http://code.google.com/appengine/articles/djangoforms.html에서 db.Model과 함께 Django 양식을 사용합니다. 따라서 다소 모호하게 보일 수 있습니다. "일부 기능"이 작동하지 않을 수도 있으며 Google 기사조차도 BaseModel을 무시합니다. 나는 안전면에서 BaseModel을 사용할 것이지만 어떤 문제가 발생할 수 있는지 더 잘 이해하고 싶습니다. "Pydev UA"가 다른 대답에서 언급 한 모델 등록입니까? –

+0

Luis,이 질문에 대한보다 완전한 대답을 원한다면, 이것을 허용 된 대답으로 표시하지 않을 수 있습니다. 나는이 주제에 대해 더 많이 알고 싶다. BaseModel 대신 db.Model을 사용하는 경우 "나는 어떤 문제가 발생할 수 있는지 더 잘 이해하고 싶습니다."라는 진술에 완전히 동의합니다. 나는 또한 당신이 "오히려 vage"라고 말하는 부분에 동의하며, 일부 기능은 작동하지 않을 수도 있습니다. – allyourcode

1

BaseModel도 django에서 상속 된 모델의 등록을 수행합니다 (따라서 django.db.models.loading.get_model ('app_lable.ModelName') 및 이와 관련된 모든 기타 자료를 호출하여 요청할 수 있습니다)

관련 문제