我读过“Python中的元类是什么”,但我仍然感到困惑。
我是python的新手,并且已经将它从2.5升级到2.7。
我有以下内容:
class UsersDB(db.Model):
Email = db.EmailProperty(required=True,verbose_name='Email *')
Enable = db.BooleanProperty(default=True)
和
class UsersQuickAddForm(forms.ModelForm):
def is_user_exist(self, account):
users_query = UsersDB.all().filter('Email =', account).fetch(1)
if len(users_query) > 0:
return True
return False
class Meta:
model = UsersDB
exclude = ['Enable']
但是当我尝试在google网站上执行它时,我得到:
追踪(最近一次通话): 文件“/base/data/home/runtimes/python27/python27_lib/versions/1/google/appengine/runtime/wsgi.py”,第239行,处理 handler = _config_handle.add_wsgi_middleware(self._LoadHandler()) 在_LoadHandler中输入文件“/base/data/home/runtimes/python27/python27_lib/versions/1/google/appengine/runtime/wsgi.py”,第298行 handler,path,err = LoadObject(self._handler) 在LoadObject中的文件“/base/data/home/runtimes/python27/python27_lib/versions/1/google/appengine/runtime/wsgi.py”,第84行 obj = 导入(路径[0]) 文件“/base/data/home/apps/s~ldsdgidev/glen27.371429613087607751/LDSGH.py”,第8行,在 来自core.decorators导入权限要求 文件“/base/data/home/apps/s~ldsdgidev/glen27.371429613087607751/core/decorators.py”,第7行,in 来自core.initialization import loginIf 文件“/base/data/home/apps/s~ldsdgidev/glen27.371429613087607751/core/initialization.py”,第6行,in 导入photo_images 文件“/base/data/home/apps/s~ldsdgidev/glen27.371429613087607751/core/photo_images.py”,第1行,in 来自core.db_models导入ImagesDB 文件“/base/data/home/apps/s~ldsdgidev/glen27.371429613087607751/core/db_models.py”,第222行,在 class UsersQuickAddForm(forms.ModelForm):#only account,firstname和last name是必需的 在新中输入文件“/base/data/home/apps/s~ldsdgidev/glen27.371429613087607751/django/forms/models.py”,第205行 opts.exclude,opts.widgets,formfield_callback) 在fields_for_model中输入文件“/base/data/home/apps/s~ldsdgidev/glen27.371429613087607751/django/forms/models.py”,第145行 opts = model._meta AttributeError:类型对象'UsersDB'没有属性'_meta'
我不明白我需要添加到UserDB类来摆脱错误。
任何帮助都会很棒!
答案 0 :(得分:1)
这与Python版本或元类没有任何关系。
ModelForms仅适用于Django模型。 db.Model
是App Engine模型类,而不是Django类。您不能使用该类的模型。
你在问题标签中提到了django-nonrel。该项目允许您使用Django模型 - models.Model
的子类与App Engine数据存储区。你可能想这样做。