【发布时间】:2016-07-05 20:37:35
【问题描述】:
我正在尝试添加用户并将用户分配给组。以下用于添加用户,但是当我取消注释指示的行时,我收到下面提到的错误。如何摆脱错误以便将用户(ur)添加到组中?感谢您的帮助!
# This file is named passuserstack.py
# I call it by typing: python passuserstack.py johndoe
# to add a user named johndoe
import os
import sys
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "dmt.settings")
from django.contrib.auth.models import User, Group
from django.contrib.auth import authenticate, login
arg1 = sys.argv[1]
def loginuser(myuser=arg1):
myuserpw = myuser + 'pw'
# Check to see if that user exists
if ( User.objects.filter(username=myuser).exists() ):
#do nothing
mynote = "I am a returning user"
else:
# create the user
mynote = "I am a new user"
ur = User.objects.create_user(myuser, 'notkeeping@email.com', myuserpw)
ur.is_staff = True
ur.save()
# assign permissions by assigning to a group
gp = Group.objects.get(name='NBI_graph_tool')
#gp.user_set.add(ur)
# when I uncomment the line just above this, I get the error :
# raise AppRegistryNotReady("Models aren't loaded yet.")
# django.core.exceptions.AppRegistryNotReady" Models aren't loaded yet.
if __name__ == "__main__":
loginuser()
【问题讨论】:
-
从 django python shell 运行你的程序:python ./manage.py shell
-
我试过这个:python manage.py shell。然后在下一行 >>>passuserstack.py johndoe,我得到一个 SyntaxError: invalid syntax,指向 johndoe 中的 e。我不确定我是否正确理解了乔尔。
-
对不起,我忘了你要运行程序。也许您可以将文件作为参数提供给 shell,但我不确定
-
如果我在 os.environ.setdefault....line 之后添加两行似乎可以工作。它们是: import django 然后 django.setup()
标签: python django permissions django-admin