Created
September 22, 2015 07:27
-
-
Save anonymous/875d35faf9c8eb3ffa84 to your computer and use it in GitHub Desktop.
A Django view to create new user from custom view
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
@user_passes_test(lambda u: u.is_superuser) | |
def user_add(request): | |
if request.POST: | |
username = request.POST.get('username', None) | |
email = request.POST.get('email', None) | |
initial_pwd = User.objects.make_random_password() | |
# create user object | |
if username and email: | |
user = User.objects.create_user(username=username, | |
email=email, | |
password=initial_pwd) | |
user.save() | |
else: | |
return HttpResponse("Failed to create new user: username and email are required fields.") | |
# send email via sendcloud | |
import requests | |
url = "http://sendcloud.sohu.com/webapi/mail.send.json" | |
params = { | |
"api_user": settings.SENDCLOUD['API_USER'], | |
"api_key" : settings.SENDCLOUD['API_KEY'], | |
"to" : email, | |
"from" : settings.SENDCLOUD['SENDER_ID'], | |
"fromname" : "No-Reply", | |
"html" : get_template('pages/email_new_user_notification.txt').render( | |
Context({ | |
'email': email, | |
'pass': initial_pwd, | |
}) | |
), | |
"subject": "Your *** account has been created", | |
"resp_email_id": "true", | |
} | |
r = requests.post(url, data=params) | |
# redirect to user list | |
return HttpResponseRedirect("/admin/auth/user") | |
return render_to_response("pages/forms_add_user.html", { | |
'site_name': settings.SITE_NAME, | |
}, context_instance=RequestContext(request)) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment