2013-04-22 78 views
-2

我想創建非活動用戶並向他們發送激活電子郵件。 這是我的看法:Django創建用戶

secret = hexlify(os.urandom(6)) 
userName = form.cleaned_data['email'] 
if User.objects.filter(username=userName): 
    message = EmailMessage('portal/pay_email2.html',{'refid':pk, 'amount':total,'Payment':Payment,'secret': secret }, 'Madeeha ', to=[form.cleaned_data['email']]) 
    message.send() 
else: 
    userPass = hexlify(os.urandom(4)) 
    userMail = form.cleaned_data['email'] 
    user = User.objects.create_user(userName, userMail,userPass) 
    user.save() 
    message = EmailMessage('portal/pay_email.html',{'refid':pk, 'amount':total,'Payment':Payment,'userName':userName, 'userPass':userPass, 'secret': secret }, 'Madeeha ', to=[form.cleaned_data['email']]) 
    message.send() 
+2

問題是什麼? – 2013-04-22 09:42:45

+0

我正在創建用戶,但它正在創建活動用戶,我想創建非活動用戶並向他們發送激活郵件 – 2013-04-22 09:44:33

回答

3

的User.objects.create_user方法將創建活動標誌設置爲true的用戶。

你有兩個選擇:

  • 保存後,你可以設置的值是假的,然後更新(額外的數據庫調用)
  • 你可以使用更長的手動符號創建用戶(不使用輔助方法)
  • 覆蓋的create_user方法與一個鍵 - 值IS_ACTIVE =假:

    # create_user(username, email=None, password=None, **extra_fields) User.objects.create_user('username', email='email', password='pass', is_active=False)

1

首先,你應該分享你的用戶模型。如果這是Django 1.5,您可以/應該爲用戶定義一個狀態字段,如is_active,is_admin,is_superuser(如MattWritesCode表示)。

然後,你可以簡單地創建一個簡單的查詢集用戶:

create_user = UserProfile.objects.create_user(username=xxx, [email protected], is_active=False, is_admin=False)