2016-03-18 13 views
0

Ich versuche, einen Benutzer hinzuzufügen und einen Benutzer zu einer Gruppe zuzuweisen. Folgendes funktioniert, um den Benutzer hinzuzufügen, aber wenn ich die angegebene Zeile auskommentiere, erhalte ich den unten angegebenen Fehler. Wie beseitige ich den Fehler, damit der Benutzer (ur) zur Gruppe hinzugefügt wird? Danke für Ihre Hilfe!Python Shell Django Admin Benutzer zu einer Gruppe hinzufügen

# 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, '[email protected]', 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() 
+0

führen Sie Ihr Programm von Django Python Shell: Python ./manage.py Shell –

+0

Ich habe es versucht: Python manage.py Shell. Dann in der nächsten Zeile >>> passuserstack.py johndoe und ich bekomme eine SyntaxError: ungültige Syntax, die auf die e in Johannes zeigt. Ich bin mir nicht sicher, ob ich dich richtig verstanden habe Joel. – Sandra

+0

Entschuldigung, ich habe vergessen, dass Sie das Programm ausführen möchten. vielleicht können Sie Datei als Argument Shell geben, aber ich bin mir nicht sicher –

Antwort

0

Wie Sandra in den Kommentaren darauf hingewiesen, haben Sie django.setup() zu verwenden. Es ist dokumentiert unter

Verwandte Themen