使用appengine和django non-rel从Python 2.5迁移到2.7

时间:2013-11-07 15:44:33

标签: google-app-engine python-2.7 django-nonrel

我读过“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类来摆脱错误。

任何帮助都会很棒!

1 个答案:

答案 0 :(得分:1)

这与Python版本或元类没有任何关系。

ModelForms仅适用于Django模型。 db.Model是App Engine模型类,而不是Django类。您不能使用该类的模型。

你在问题​​标签中提到了django-nonrel。该项目允许您使用Django模型 - models.Model的子类与App Engine数据存储区。你可能想这样做。