Django的1.11名称 '集团' 没有定义
的Python 3.6.1
我的项目将被部署,我将不得不预先设置一些东西。也就是说,我需要几个用户组。
所以,我做了一个目录下的“部署”,并把它放在旁边,项目的目录。
当一个新的数据库将被创建的,我只是执行:
python manage.py shell < ../deployment/initialize_project.py
此代码作品:
from django.contrib.auth.models import Group
Group.objects.create(name="commentator") # Can only comment.
Group.objects.create(name="contributor") # Can add, change and delete
# objects.
此代码不:
from django.contrib.auth.models import Group
def initialize_roles():
Group.objects.create(name="commentator") # line 6
Group.objects.create(name="contributor")
initialize_roles() # line 12
回溯:
Traceback (most recent call last):
File "manage.py", line 22, in <module>
execute_from_command_line(sys.argv)
File "/home/michael/workspace/venv/photoarchive/lib/python3.6/site-packages/django/core/management/__init__.py", line 363, in execute_from_command_line
utility.execute()
File "/home/michael/workspace/venv/photoarchive/lib/python3.6/site-packages/django/core/management/__init__.py", line 355, in execute
self.fetch_command(subcommand).run_from_argv(self.argv)
File "/home/michael/workspace/venv/photoarchive/lib/python3.6/site-packages/django/core/management/base.py", line 283, in run_from_argv
self.execute(*args, **cmd_options)
File "/home/michael/workspace/venv/photoarchive/lib/python3.6/site-packages/django/core/management/base.py", line 330, in execute
output = self.handle(*args, **options)
File "/home/michael/workspace/venv/photoarchive/lib/python3.6/site-packages/django/core/management/commands/shell.py", line 101, in handle
exec(sys.stdin.read())
File "<string>", line 12, in <module>
File "<string>", line 6, in initialize_roles
NameError: name 'Group' is not defined
我标记上面的代码线6和12(内联的评论)。
我试图用pdb.set_trace(),但同样的错误出现。就好像pdb没有定义一样。
我也尽量不喂manage.py上initialize_project.py,只是运行python manage.py壳和换行的代码行。它工作完美。
你能在这里给我一个踢吗?
后来添加
这工作:
def initialize_roles():
from django.contrib.auth.models import Group
Group.objects.create(name="commentator") # Can only comment.
Group.objects.create(name="contributor") # Can add, change and delete
# objects.
initialize_roles()
您编辑过的行中显然会出现一些问题。你有没有重新定义组内的功能? –
该函数内部没有重定义。我会尽我所能地说 - 这些线条正如我在这里给他们的。我只是复制它们。在整个文件中,除了该函数的评论之外没有别的。 – Michael
有趣!当在python manage.py shell中手动复制粘贴代码时,这会起作用吗? Imean'initialize_roles()'不起作用的样式 – rrmerugu