1

似乎很難找到Django的蒙戈引擎使用ListField與ForeignField的一個完整的例子..我的邏輯看起來像下面,ListField與ForeignField在Django的nonrel

class GameSession(models.Model): 
    # id => token, is global unique random code 
    id = models.CharField(max_length=45, primary_key=True) 
    def save(self, *args, **kwargs):  
     if not self.pk: 
      self.pk = util.get_random_string(32) 
     super(GameSession, self).save(*args, **kwargs) 

class GameUser(models.Model): 
    ... 
    game_session = fields.ListField(models.ForeignKey(GameSession)) 

在別的地方我不喜歡對此,

game_session = GameSession() 
game_session.save() 
self.game_session.append(game_session) 
self.save() 

所以分貝內,場self.game_session是一樣的東西

(Pdb) self.game_session 
[u'GameSession object'] 

這不可能存儲game_session元素的PK。如何正確使用ListField(插入,檢索爲外國模式,刪除)?或者它仍然不支持帶有ForeignField的ListField?

回答

1

用途:

self.game_session.append(game_session.id) 

使用ForeignKey的是不是很「自動」保存條目到ListField的時候,但是當你需要引用這些對象中,ForeignKey的將獲取的對象爲您服務。

+0

謝謝。順便說一句,它是像其他Django的模型對象懶評估,如果我沒有得到屬性值,db訪問不會被觸發? –

+0

我想是的,但我沒有真正測試過,以確認它。 – dragonx