2011-07-06 53 views
1

我想有在Django純粹的內存SQLite數據庫,我想有它的工作,除了一個惱人的問題:Django的在內存的SQLite3數據庫

我需要運行syncdb在使用數據庫之前,這不是太多問題。問題是它需要創建一個超級用戶(在auth_user表中,我認爲),其中需要交互輸入

爲了我的目的,我不想要這個 - 我只是想在內存中創建它,我真的不關心密碼,因爲我是唯一的用戶。 :)我只想在某處硬編碼密碼,但我不知道如何以編程方式執行此操作。

任何想法?

回答

3

斷開django.contrib.auth.management.create_superuserpost_syncdb信號,而是連接自己的函數創建並保存新的超級用戶User與所需的密碼。

+0

Oooh'create_superuser'看起來很有用,謝謝! – Mehrdad

1
+0

感謝您的鏈接。但不幸的是,我不太清楚如何使用它們 - 他們將如何爲Django本身創建密碼? – Mehrdad

+0

一旦你有一個用戶的運行副本,你只需要從用戶模型中導出一個燈具。 ./manage.py dumpdata auth.User> initial_data.json。每次運行syncdb時都會加載此夾具https://docs.djangoproject.com/en/1.3/howto/initial-data/#automatically-loading-initial-data-fixtures – John

6

任何輸入或django-admin.py的提示可以使用本--noinput選項被抑制,如

./manage.py syncdb --noinput 

這將跳過所述初始執行syncdb運行超級用戶創建的,因此需要您可以使用燈具或自定義方法創建一個作爲post_syncdb信號的接收器。

django-admin.py and manage.py in the Django docs

--noinput

使用--noinput選項禁止 所有用戶提示,如 「你 確定嗎?」確認消息。如果將django-admin.py作爲 作爲無人蔘與的自動 腳本執行,則此爲 。

相關問題