我正在尝试在 Django 中创建一个纯内存 SQLite 数据库,并且我认为它可以正常工作,除了一个烦人的问题:
我需要syncdb
在使用数据库之前运行,这不是什么大问题。问题是它需要创建一个需要交互式输入auth_user
的超级用户(我认为是在表中)。
出于我的目的,我不想要这个——我只想在内存中创建它,而且我真的不关心密码,因为我是唯一的用户。:) 我只想在某处硬编码密码,但我不知道如何以编程方式执行此操作。
有任何想法吗?
我正在尝试在 Django 中创建一个纯内存 SQLite 数据库,并且我认为它可以正常工作,除了一个烦人的问题:
我需要syncdb
在使用数据库之前运行,这不是什么大问题。问题是它需要创建一个需要交互式输入auth_user
的超级用户(我认为是在表中)。
出于我的目的,我不想要这个——我只想在内存中创建它,而且我真的不关心密码,因为我是唯一的用户。:) 我只想在某处硬编码密码,但我不知道如何以编程方式执行此操作。
有任何想法吗?
django-admin.py 的任何输入或提示都可以使用--noinput选项抑制,例如
./manage.py syncdb --noinput
这将跳过在初始 syncdb 运行时创建超级用户,因此需要您使用固定装置或自定义方法创建一个作为post_syncdb
信号接收器的超级用户。
请参阅Django 文档中的 django-admin.py 和 manage.py:
--无输入
使用 --noinput 选项禁止所有用户提示,例如“您确定吗?” 确认消息。如果 django-admin.py 作为无人值守的自动化脚本执行,这很有用。
断开信号连接django.contrib.auth.management.create_superuser
,post_syncdb
而是连接您自己的函数,该函数创建并保存User
具有所需密码的新超级用户。