-3

I want to create the inactive user and send them activation email. This is my view:

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()
4

2 回答 2

3

User.objects.create_user 方法将创建一个活动标志设置为 true 的用户。

你有几个选择:

  • 保存后,您可以将值设置为 false,然后更新(额外的数据库调用)
  • 您可以使用更长的手动符号创建用户(不使用辅助方法)
  • 使用 is_active=False 的键值覆盖 create_user 方法:

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

于 2013-04-22T09:53:04.067 回答
1

First you should share your User Model, too. If this is Django 1.5 , You can/should define a status field for users like is_active, is_admin, is_superuser .(like MattWritesCode said).

Then you can simply create a user with a simple queryset:

create_user = UserProfile.objects.create_user(username=xxx, email=xx@xx.com, is_active=False,  is_admin=False)
于 2013-04-22T10:06:54.743 回答