按键查询模型

2024-04-20 14:02:32 发布

您现在位置:Python中文网/ 问答频道 /正文

我要做的是查询数据存储中的一个模型,其中的键是而不是我已经拥有的对象的键。下面是一些代码:

class User(db.Model):
    partner = db.SelfReferenceProperty()

def text_message(self, msg):
    user = User.get_or_insert(msg.sender)

    if not user.partner:
        # user doesn't have a partner, find them one
        # BUG: this line returns 'user' himself... :(
        other = db.Query(User).filter('partner =', None).get()
        if other:
            # connect users
        else:
            # no one to connect to!

我们的想法是找到另一个没有合作伙伴的User,那不是我们已经认识的用户。在

我试过filter('key !=, user.key())filter('__key__ !=, user.key())和其他一些人,但是没有任何结果返回另一个没有伴侣的Userfilter('foo !=, user.key())也不返回任何记录。在


Tags: to数据key模型dbpartnergetif
1条回答
网友
1楼 · 发布于 2024-04-20 14:02:32

有一个非常简单的方法来解决这个问题:检索两个记录,并过滤掉用户自己的一个记录(如果存在的话)。在

def text_message(self, msg):
    user = User.get_or_insert(msg.sender)

    if not user.partner:
        # user doesn't have a partner, find them one
        other = db.Query(User).filter('partner =', None).fetch(2)
        other = [u for u in other if u.key() != user.key()]
        if other:
            # connect user with other[0]
        else:
            # no one to connect to!

相关问题 更多 >