【发布时间】:2011-06-19 07:07:23
【问题描述】:
我厌倦了每次打开 Django shell 时都输入from account_import.models import ImportFile。有没有办法在我启动 shell 时自动运行这个命令?
【问题讨论】:
我厌倦了每次打开 Django shell 时都输入from account_import.models import ImportFile。有没有办法在我启动 shell 时自动运行这个命令?
【问题讨论】:
安装 django-extensions,它的功能之一 (shell_plus) 是为您的模型提供上下文。 https://github.com/django-extensions/django-extensions
因此,您可以使用./manage.py shell_plus 代替./manage.py shell,以便导入所有内容。
【讨论】:
./manage.py shell_plus 时它说 Unknown command: 'shell_plus'。
http://docs.python.org/using/cmdline.html#envvar-PYTHONSTARTUP
如果您将环境变量PYTHONSTARTUP 设置为一个文件,那么每当您启动python shell 时,它将首先运行。
【讨论】:
postactivate 脚本中,我添加了一个别名来首先导出PYTHONSTARTUP 变量,然后运行django shell。启动脚本仅在我使用此别名时执行。唯一的缺点是如果我运行这个别名,然后在同一个终端中,关闭 django shell,然后尝试打开普通的 python shell,它会再次读取启动文件。但无论如何我从不这样做。所以我可以忍受它。
from myapp.models import *。然后使用 PYTHONSTARTUP="imports.py" python3 manage.py shell 启动 shell