2013-03-13 2 views
0

이 모델을 감안할 때 :빈 StringListProperty가있는 엔티티는 어떻게 찾을 수 있습니까?

class TestModel(db.Model): 
    names = db.StringListProperty(required=False) 

나는 빈 이름 속성이 실체를 찾으려를, 그래서이 시도 :

TestModel.all().filter('names ==', []) 

을하지만 예외 제기 BadValueError : 목록에서 필터링이 하지 this very similar question에서

지원, 나는 또한 시도 :

TestModel.all().filter('names <', None) 
TestModel.all().filter('names ==', None) 

그러나 이것도 작동하지 않았습니다.

답변

2

목록에서 필터링은 목록의 각 항목에 대해 필터를 필터링합니다. 따라서 ('names ==', 'x')를 필터링하면 이름 목록에 'x'가 포함 된 엔티티를 찾습니다.

불행히도 이런 식으로 빈 목록을 찾을 수 없습니다. 가장 좋은 방법은 다른 속성을 테스트 모델에 추가하는 것입니다. 목록 크기의 정수이거나 isEmpty라는 부울 값을 대신 사용하여 쿼리를 수행하는 것입니다.