appengine_django BaseModel 和 db.Model 的区别

1 投票
2 回答
663 浏览
提问于 2025-04-15 15:55

我正在使用Google App Engine为Django提供的助手。这个助手在它的模板中包含了以下几行:

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

# Create your models here.

我应该让我的模型继承自db.Model还是BaseModel呢?我试过两者,感觉没有什么区别。两者似乎都能正常工作,即使是在使用Django表单的时候。有没有什么理由不把BaseModel的引入删掉,直接让所有模型都继承自db.Model呢?

2 个回答

1

BaseModel 还会在 Django 中注册它的子类模型。这意味着你可以通过调用 django.db.models.loading.get_model('app_lable.ModelName') 来获取这个模型,此外还有其他相关的功能。

0

BaseModel是Django提供的一个类,它是从db.Model这个类扩展出来的,这样Django在使用它的时候会更顺畅。你需要同时导入这两个类的原因是,因为某些属性类还是直接从db中使用。如果你只用db.Model而不使用BaseModel,可能会发现Django的一些功能不能正常工作。

撰写回答