GAE模型错误

GAE Model Error

这些是我要导入的模块

from google.appengine.ext import ndb
from google.appengine.ext import db

这是我的代码使用模型(并收到错误)的地方

#class_checking = Class_checking(id = classname) --> how i created Object
#......#
#class_c_prereq is the key_name that was made manually 
class_c_update = Model.get_by_key_name(class_c_prereq)
#I need to retrieve the entity, but Model is undefined

这是回溯错误

File "C:\Users\Desktop\classes\main.py", line 59, in post
self.updating(class_data)
File "C:\Users\Desktop\classes\main.py", line 40, in updating
class_c_update =Model.get_by_key_name(class_c_prereq)
NameError: global name 'Model' is not defined

Class_checking 实体由此创建:

class_checking = Class_checking(classC_name = classname, classC_prereq = prereq, classC_point_To = 0, classC_point_By = 1, classC_array = class_data_JSON, id = classname ) 

然后我有一个单独的函数,用于更新属性 classC_point_To

class_data = Class_checking.query().fetch() #gets all entities of Class
for class_c1 in class_data: 
    class_c_prereq = class_c1.classC_prereq #gets the class prereq, only 1 prereq
    for prereq_class in class_data: #loop through all entities of Class
        if prereq_class.classC_name == class_c_prereq: #if the class name == prereq
            class_c_update = db.Model.get_by_key_name(class_c_prereq) #update the class name so that it "points to" a class
            class_c_update.classC_point_To = 1
            class_c_update.put()

在这种情况下您需要引用数据库。

使用:

class_c_update = db.Model.get_by_key_name(...)

from google.appengine.ext.db import Model

您必须使用模型子类来按键获取数据。在您的示例中,您的模型是 Class_checking,因此对于 db.Model 子类,正确的类方法是 Class_checking.get_by_key_name(class_c_prereq),对于 ndb.Model 子类,正确的类方法是 Class_checking.get_by_id(class_c_prereq)