似乎很难找到在 django-mongo-engine 中使用 ListField 和 ForeignField 的完整示例。我的逻辑如下所示,
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?