1

我有这个数据存储模型:

class Person(db.Model):
    person_name = db.StringProperty(required = True)        
    nacionality = db.StringProperty(required = True)
    marital_status = db.StringProperty(required = True)
    profession = db.StringProperty(required = True)
    SSN = db.IntegerProperty(required = True)
    driver_license = db.IntegerProperty(required = True)
    address = db.PostalAddressProperty(required = True)

在这个模型中,person_name 可能是这样的:'Carl Sagan'(整个名字只有 on 属性)。但是当我查询它时,这样:

    searched_name = 'Carl'
    p = Person.all()
    persons = p.filter('person_name >=', searched_name)

结果,我得到了不以“Carl”开头的名称,或者名称的任何部分都没有“Carl”。如果我这样查询:persons = p.filter('person_name >=', searched_name)我没有得到任何结果(甚至没有找到'Carl Sagan')。所以,我想知道:这种查询的最佳过滤器是什么?(仅使用名字查询完整的名称属性)?

4

1 回答 1

1

字符串过滤器的工作原理是比较字符串开头的字符。你可以这样做:

p.filter('person_name >=', searched_name)
p.filter('person_name <', searched_name + u'\ufffd')
于 2012-08-10T13:26:07.680 回答