[英]A Simple Python Regular Expression Problem in Google App Engine
[英]Google app engine python problem
我在嘗試復制左聯接以從模型a查找模型b中沒有匹配關系的項目時遇到了數據存儲區問題:
class Page(db.Model):
url = db.StringProperty(required=True)
class Item(db.Model):
page = db.ReferenceProperty(Page, required=True)
name = db.StringProperty(required=True)
我想查找沒有任何相關項目的任何頁面。
您無法使用“屬性為空”過濾器查詢商品。 但是,您可以向Page添加一個布爾屬性,以指示是否有項目:
class Page(db.Model):
url = db.StringProperty(required=True)
has_items = db.BooleanProperty(default=False)
然后覆蓋Item的“ put”方法以翻轉標志。 但是您可能希望將此邏輯封裝在Page模型中(也許是Page.add_item(self,* args,** kwargs)):
class Item(db.Model):
page = db.ReferenceProperty(Page, required=True)
name = db.StringProperty(required=True)
def put(self):
if not self.page.has_items:
self.page.has_items = True
self.page.put()
return db.put(self)
因此,對沒有項目的頁面的查詢將是:
pages_with_no_items = Page.all().filter("has_items =", False)
數據存儲區不支持聯接,因此您無法通過單個查詢來做到這一點。 您需要查詢A中的項目,然后針對每個項目進行另一個查詢以確定B中是否有任何匹配的項目。
您是否嘗試過像:
Page.all().filter("item_set = ", None)
應該管用。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.