def post(self, request):
form = UserCreateForm(request.POST)
if form.is_valid():
email = form.cleaned_data.get('email')
username = form.cleaned_data.get('username')
is_active = form.cleaned_data.get('is_active')
role = form.cleaned_data.get('role')
groups = form.cleaned_data.get('groups')
try:
user = User.objects.create_user(
email=email,
username=username,
is_active=is_active,
role=role,
)
except IntegrityError:
error_msg = '???????????'
groups = UserGroup.objects.only('id', 'name')
role_types = UserRoleType.attrs
status_types = UserStatusType.attrs
context = dict(
error_msg=error_msg,
groups=groups,
role_types=role_types,
status_types=status_types,
)
return render(request, 'users/user_create.html', context)
else:
user.groups.add(*groups)
sign = hashlib.md5(email + settings.SECRET_KEY).hexdigest()
url = urlparse.ParseResult(
scheme=request.scheme,
netloc=urlparse.urlparse(request.get_raw_uri()).netloc,
path=reverse(('core:SetPassword')),
params='',
query = urllib.urlencode({'email': email, 'sign': sign}),
fragment='',
).geturl()
msg = EmailMultiAlternatives(
subject='??????',
body=get_template('users/user_email_activate.html').render({'url': url}),
from_email=settings.EMAIL_HOST_USER,
to=[email,],
)
msg.content_subtype = 'html'
msg.send(fail_silently=True)
return HttpResponseRedirect(reverse('user:UserList'))
else:
groups = UserGroup.objects.only('id', 'name')
role_types = UserRoleType.attrs
status_types = UserStatusType.attrs
context = dict(
groups=groups,
role_types=role_types,
status_types=status_types,
form=form,
)
return render(request, 'users/user_create.html', context)
评论列表
文章目录