0

私が持っているのは、Mongo エンジンを使用した Django のセットアップです。Heroku の mongolab サンドボックス アドオンを使用しました。heroku 経由で提供される mongolab 設定を使用してローカルで実行しているときに、モデルのインスタンスを作成すると、mongolab に保存されることがわかります。save() 関数を要求することすらありません。

次のインストールがあります。

pip install git+https://github.com/django-nonrel/django@nonrel-1.5
pip install git+https://github.com/django-nonrel/djangotoolbox
pip install git+https://github.com/django-nonrel/mongodb-engine

pymongoもインストールしました

settings.py:

DATABASES['default'] = dj_database_url.config()
DATABASES['default']['ENGINE'] = 'django_mongodb_engine'
DATABASES['default']['NAME'] = 'database'
DATABASES['default']['USER'] = 'username'
DATABASES['default']['PASSWORD'] = 'password'
DATABASES['default']['HOST'] = 'host'
DATABASES['default']['PORT'] = 'port'

modles.py:

from django.db import models
from djangotoolbox.fields import ListField
class Post(models.Model):
    title = models.CharField(max_length=20)
    text = models.TextField()
    tags = ListField()
    comments = ListField()
def __unicode__(self):
    return self.title

私のpythonシェル(python manage.py shell):

>>>from myapp.models import Post
>>>a = Post.objects.create(title="abc", text="pqr", tags=["wer","tyu"], comments=["ret","swe"])
>>>a
<Post: abc>

これは、まさにこのステップ自体で、settings.py で指定されたデータベースに保存されます。

ドキュメントから:

MongoEngine tracks changes to documents to provide efficient saving. To save the document to the database, call the save() method. If the document does not exist in the database, it will be created. If it does already exist, then any changes will be updated atomically

私は何か間違ったことをしていますか?Mongodb を使用するのはこれが初めてです

4

1 に答える 1