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