Django独立导入用户

时间:2013-06-26 02:16:34

标签: python django

我在app dir中编写了python文件,我希望按名称从我的数据库中获取用户,然后在脚本中单独执行某些操作。

我尝试了以下内容:

from django.contrib.auth.models import User
user = User.objects.filter(username='xiaofei')
print user

但:

Traceback (most recent call last):
  File "send_test.py", line 1, in <module>
    from django.contrib.auth.models import User
  File "/usr/local/lib/python2.7/dist-packages/django/contrib/auth/models.py", line 5, in <module>
    from django.db import models
  File "/usr/local/lib/python2.7/dist-packages/django/db/__init__.py", line 11, in <module>
    if DEFAULT_DB_ALIAS not in settings.DATABASES:
  File "/usr/local/lib/python2.7/dist-packages/django/utils/functional.py", line 184, in inner
    self._setup()
  File "/usr/local/lib/python2.7/dist-packages/django/conf/__init__.py", line 40, in _setup
    raise ImportError("Settings cannot be imported, because environment variable %s is undefined." % ENVIRONMENT_VARIABLE)
ImportError: Settings cannot be imported, because environment variable DJANGO_SETTINGS_MODULE is undefined.

最终解决方案:

import os, sys
sys.path.insert(0, os.path.join(os.path.abspath('..')))
import settings
from django.core.management import setup_environ
setup_environ(settings)

from django.contrib.auth.models import User
user = User.objects.filter(username='xiaofei')
print user

2 个答案:

答案 0 :(得分:1)

如果您计划多次运行此命令,我建议您创建自定义管理命令。它只需要少量的样板代码和应用程​​序中的特殊目录。它将解决您的问题,并有助于提高项目的长期可维护性。

https://docs.djangoproject.com/en/dev/howto/custom-management-commands/

答案 1 :(得分:0)

编写独立的Django脚本时需要perform a few tasks manually

相关问题