什么可以导致prod和dev之间的这种差异?

时间:2012-06-30 17:54:35

标签: google-app-engine python-2.7 jinja2 app-engine-ndb

相同的代码,在生产中在开发过程中不起作用。

模型:

class Comput(ndb.Model):
    @staticmethod
    def membership(user):
        q = ndb.gql("SELECT * FROM Members WHERE member = :1", user)
        result = q.fetch()
        return [m.comput.get() for m in result]
        #return [m.comput.get() for m in q] #same issue (dev yes, prod no)

class Members(ndb.Model):
    comput = ndb.KeyProperty(kind=Comput)
    member = ndb.UserProperty()

处理程序:

comput_list = Comput.membership(users.get_current_user())

模板:

{% for comput in comput_list %}
    <tr onclick="location.href='/comput?id={$ comput.key.id() $}'">

追踪(仅限于生产中):

UndefinedError: 'None' has no attribute 'key'

即使comput_list有实体,也会出现这种情况。

更新:没有会员的自动生成索引,我尝试手动添加但没有任何更改

1 个答案:

答案 0 :(得分:1)

看起来您的Members个对象的comput属性为None。我会使用生产数据查看器(或添加日志语句)来查找它是哪个成员。