MongoDB を Django と連携させようとして、悪夢にうなされていました。正常にインストールされましたが、最初にオブジェクトを保存しようとするとエラーになります。私はこのチュートリアルに従い、彼らが提示する Post モデルを正確にコピーしました。
モデルのコードは次のとおりです。
from django.db import models
from djangotoolbox.fields import ListField
class Post(models.Model):
title = models.CharField(max_length=200)
text = models.TextField()
tags = ListField()
comments = ListField()
投稿は実際にここで作成 (および挿入) されます。
post = Post.objects.create(
... title='Hello MongoDB!',
... text='Just wanted to drop a note from Django. Cya!',
... tags=['mongodb', 'django'],
... comments=['comment 1', 'comment 2']
... )
完全なスタック トレースはここにあります。エラー自体は次のとおりです。
InvalidDocument: documents must have only string keys, key was <django.db.models.fields.CharField object at 0x22cae50>
MongoDB はキーを整数ではなく文字列にする必要があるため、明らかに機能しています。しかし、なぜラム酒はなくなったのですか?標準の Django オブジェクトを MongoDB データベースに保存できないのはなぜですか?
見落とされていた必須の CharField パラメータ max_length を追加しました。この場合は機能しません。また、リストも削除しても機能しません。