2010-04-30 27 views
0

我一直在尋找有關如何做到這一點的信息。基本上我有一個模型:如何在Google AppEngine的djangoforms.ModelForm中使用ListProperty(users.user)?

class SharableUserAsset(db.Model): 
    name = StringProperty() 
    users = ListProperty(users.User) 

我的問題是:

  1. 什麼是用戶這個值,他們沒有通過認證相關聯的最佳途徑,簽證VI從聯繫人列表等邀請?
  2. 在djangoforms.ModelForm中,是否有合理的方式來提供列表控件?
  3. 一旦用戶登錄,我希望能夠檢查該用戶是否在任何數量的SharableUserAsset類「記錄」列表中,我該怎麼做?
  4. 用戶評估是否與電子郵件地址匹配,或者有什麼方法通過電子郵件地址查找有效用戶?

回答

1

在查詢中,列表屬性 比較的值執行對 測試中的列表成員:list_property = 值測試如果該值在列表

http://code.google.com/appengine/docs/python/datastore/typesandpropertyclasses.html#ListProperty任何地方出現

所以要找到與當前用戶關聯的所有SharableUserAsset只需查詢如:

user = users.get_current_user() 
assets = SharableUserAsset.gql("WHERE users = :1", user) 

這裏的another reference處理ListProperty對象。

App Engine User對象包含一個電子郵件地址,並且可以使用.email()方法取消電子郵件地址。

+0

對該部分的回答很好,但我的問題也稍微有點關於如何以有用的方式將用戶存儲爲gmail帳戶的聯繫人列表中的邀請。然後,當被邀請的用戶來到使用該賬戶登錄的網站時,將這兩者關聯起來。我想我的問題是:當用戶包含和電子郵件時,電子郵件不是用戶。 – Gabriel 2010-04-30 09:04:39

+0

這就是我不使用Google用戶身份驗證的原因之一。我做了我自己的,只是存儲電子郵件地址。我不喜歡它的另一個原因是,它將您帶到非品牌頁面登錄。但是,使用Google身份驗證的一個好處是,它會驗證用戶的電子郵件。 所以我只是跳過使用用戶對象,只存儲電子郵件字符串與StringListProperty – Robert 2010-04-30 18:25:01

+0

點採取,這可能是足夠的現在。 – Gabriel 2010-05-01 04:44:04

相關問題