0

我阅读了“什么是 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']

但是当我尝试在谷歌网站上执行它时,我得到:

回溯(最后一次调用):文件“/base/data/home/runtimes/python27/python27_lib/versions/1/google/appengine/runtime/wsgi.py”,第 239 行,在 Handle handler = _config_handle.add_wsgi_middleware(self ._LoadHandler()) 文件“/base/data/home/runtimes/python27/python27_lib/versions/1/google/appengine/runtime/wsgi.py”,第 298 行,在 _LoadHandler 处理程序中,路径,err = LoadObject(self. _handler) 文件“/base/data/home/runtimes/python27/python27_lib/versions/1/google/appengine/runtime/wsgi.py”,第 84 行,在 LoadObject obj = import(路径 [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 行,从 core.initialization 导入 loginIf 文件“/base/data/home/apps/s~ldsdgidev/glen27.371429613087607751/core/initialization.py ",第 6 行,在导入 photo_images 文件 "/base/data/home/apps/s~ldsdgidev/glen27.371429613087607751/core/photo_images.py",第 1 行,从 core.db_models 导入 ImagesDB 文件 "/base/data /home/apps/s~ldsdgidev/glen27.371429613087607751/core/db_models.py",第 222 行,在类 UsersQuickAddForm(forms.ModelForm):#only account, firstname and last name is required File"/base/data/home/apps/s~ldsdgidev/glen27.371429613087607751/django/forms/models.py”,第 205 行,在新的 opts.exclude、opts.widgets、formfield_callback) 文件“/base/data/home/apps/s~ldsdgidev/glen27.371429613087607751/django/forms/models.py”,第 145 行,在 fields_for_model opts = model._meta AttributeError :类型对象“UsersDB”没有属性“_meta”

而且我不明白我需要向 UserDB 类添加什么来消除错误。

任何帮助都会很棒!

4

1 回答 1

1

这与 Python 版本或元类无关。

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

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

于 2013-11-07T16:13:25.523 回答