我正在尝试在Django中拥有一个纯粹的内存中SQLite数据库,并且我认为我有它工作,除了一个恼人的问题:
我需要在使用数据库之前运行syncdb
,这不是太大的问题。问题是它需要创建一个超级用户(我认为在auth_user
表中)需要交互式输入。
出于我的目的,我不想要这个 - 我只是想在内存中创建它,而我真的不关心密码,因为我是唯一的用户。 :)我只想在某处硬编码密码,但我不知道如何以编程方式执行此操作。
有什么想法吗?
答案 0 :(得分:6)
使用 - noinput 选项可以抑制django-admin.py的任何输入或提示,例如
./manage.py syncdb --noinput
这将跳过初始syncdb运行时的超级用户创建,因此需要您使用fixture或自定义方法创建一个post_syncdb
信号的接收器。
请参阅django-admin.py and manage.py in the Django docs:
<强> - noinput 强>
使用--noinput选项来抑制 所有用户提示,例如“你是 确定?“确认消息。这是 正如django-admin.py一样有用 以无人值守的方式执行,自动化 脚本。
答案 1 :(得分:3)
从django.contrib.auth.management.create_superuser
信号中断开post_syncdb
,然后连接您自己的功能,该功能会使用所需的密码创建并保存新的超级用户User
。
答案 2 :(得分:1)