def admin_user_add(request): context = RequestContext(request) new_user = User() if request.method == 'POST': # Retrieve data. new_user.username = request.POST.get('username') new_user.first_name = request.POST.get('first-name') new_user.last_name = request.POST.get('last-name') new_user.email = request.POST.get('email') if request.POST.get('rol', ''): new_user.is_admin = True new_user.role = request.POST.get('role') # Check if username already exists. try: User.objects.get(username=request.POST.get('username')) except User.DoesNotExist: # Password verification password = request.POST.get('password') confirm_password = request.POST.get('confirm-password') if password == confirm_password: new_user.set_password(password) else: messages.error(request, u"Las contraseñas no coinciden.", context) return TemplateResponse(request, 'admin/admin_users_add.html', context) # Save user! new_user.save() messages.info( request, u"El usuario '%s' ha sido creado." % new_user.username) return HttpResponseRedirect( reverse('admin.views.admin_user_list', urlconf='admin.urls'), context) # If username exist notify user. if User.objects.get(username=request.POST.get('username')): context.update({'new_user': new_user}) messages.error( request, u"El nombre de usuario '%s' ya existe." % request.POST.get('username')) return TemplateResponse(request, 'admin/admin_users_add.html', context) return TemplateResponse(request, 'admin/admin_users_add.html', context)