2014-12-07 7 views
0

제가 가지고있는 것은 Mongo 엔진이있는 장고를 설정하는 것입니다. 나는 heroku에서 mongolab 샌드 박스 addons를 사용했습니다. heroku를 통해 제공되는 mongolab 설정을 사용하여 로컬에서 실행하는 동안 내 모델의 인스턴스를 만들면 몽골 (mongolab)에 저장됩니다. 그것은 save() 함수를 요구하지도 않습니다.mongolab 샌드 박스 데이터베이스의 항목이 장고에 save()없이 발생합니다.

pip install git+https://github.com/django-nonrel/[email protected] 
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 manag e.py 쉘) :

>>>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에 처음입니다

답변

0

그래서 나는 create() 방법을 삽입하는 것을 잊었을뿐만 아니라 항목을 저장합니다. 명시 적으로 save()를 제공 할 필요는 없습니다.