1

django-mongo-engine の ForeignField で ListField を使用する完全な例を見つけるのは難しいようです。私のロジックは以下のようになります。

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 はまだサポートされていませんか?

4

1 に答える 1

1

使用する:

self.game_session.append(game_session.id)

エントリを ListField に保存する場合、ForeignKey の使用は「自動」ではありませんが、それらのオブジェクトを参照する必要がある場合は、ForeignKey がオブジェクトを取得します。

于 2012-12-31T14:41:36.493 に答える