2013-05-26 48 views
0

我試圖挽救中的另一個數據存儲實體引用:如何在GAE中保存嵌入對象?

class Save(webapp2.RequestHandler): 

    def get(self): 

     order = Order(parent=ndb.Key('Orders', 'default_orders')) 

     order.special_request  = self.request.get('specialRequirement') 
     order.product_type  = self.request.get('productType') 

     customer = Customer(parent=ndb.Key('Customer', 'default_customers')) 

     customer.name    = self.request.get('customerName') 
     customer.email    = self.request.get('email') 
     customer.put() 

     order.customer    = customer 
     order.put() 

Customer類很簡單:前

from google.appengine.ext import ndb 

class Customer(ndb.Model): 
    name = ndb.StringProperty() 
    email = ndb.StringProperty() 

雖然我已經做了類似的Rails和MongoDB,我不確定這在GAE中被稱爲什麼,並且很難搜索例子。

回答

0

好了,下面好像是我的疏忽,只是傳遞的關鍵是:

oder.customer   = customer.key 

我現在有一個可用的參考嵌入對象和兩個正在正確保存。

+1

這不是一個「嵌入式對象」,它是對客戶的參考。 'order.customer'只是「客戶」的關鍵。您將不得不取回對象。如果您刪除訂單,客戶將不會受到影響。 –