2014-03-03 60 views
1

我正在創建一個支持多個數據庫的項目。我在模型中編寫了查詢,我需要將這些詳細信息保存在選定的數據庫中。如何使用非默認數據庫

我有兩個數據庫:SQLite3和MongoDB。現在我需要將這些查詢詳細信息保存在SQLite3中。我該怎麼做?我正在使用Python 2.7和Django 1.5.4。

這裏是settings.py代碼:

DATABASES = { 
'default': {}, 

'sqlite': 
{ 
    'ENGINE': 'django.db.backends.sqlite3', 
    'NAME': os.path.join(APP_DIR, 'mydb.sqlite3'), 

    'USER': '', 
    'PASSWORD': '', 
    'HOST': '', 
    'PORT': '', 
}, 

'mongodb': 
{ 
    'ENGINE': 'django_mongodb_engine', 
    'NAME': "mydb",     

    'USER': '', 
    'PASSWORD': '', 
    'HOST': '', 
    'PORT': '', 
} 

} 

這裏是在models.py代碼:

from django.db import models 

class Blog(models.Model): 
name = models.CharField(max_length=100) 
tagline = models.TextField() 
def __unicode__(self): 
    return self.name 

回答

3

使用using argument如果使用save方法。

blog = Blog(name='This is a blog post', tagline='python django') 
blog.save(using='sqlite') 

或使用db_manager如果使用create方法:

blog = Blog.objects.db_manager('sqlite').create(
    name='This is a blog post', tagline='python django') 

對於其他操作,請參閱Multiple databases - Django documentation

+0

它說「settings.DATABASES配置不正確,請提供ENGINE值,查看設置文檔以獲取更多詳細信息」。我做錯了什麼...? – Shiva

+0

@Shiva,'default'設置爲空。選擇'sqlite'或'mongodb'作爲默認值。 – falsetru

+0

感謝您的回答,但是如果我將mongodb作爲默認數據庫,我認爲它將採用默認數據庫並將內容保存在mongodb – Shiva

相關問題