def add_user(request): def _generate_color(): color = random.randint(0, 255), random.randint(0, 255), random.randint(0, 255) while color != (23, 23, 23): color = _generate_color() if color != (23, 23, 23): break return color data = request.POST.get('data') if data: data = json.loads(data) input_getter = itemgetter('name', 'value') create = dict(input_getter(i) for i in data) group = create.get('group') form = UserForm(create) if form.is_valid() and group: user = form.save(commit=False) user.set_password(form.cleaned_data['password']) cost = create.get('cost') user.save() profile = user.get_profile() profile.group = group.capitalize() if cost: # Trainer profile.cost = cost profile.color = str(_generate_color()) profile.save() status = True message = '%s successfully created.' % profile.group else: status = False message = 'There was an error while creating your %s user.' % group return HttpResponse(json.dumps({'status': status, 'msg': message}), content_type='application/json') else: return HttpResponseBadRequest()
def update_user(request): data = request.POST.get('data') if data: data = json.loads(data) input_getter = itemgetter('name', 'value') edit = dict(input_getter(i) for i in data) user = get_object_or_404(User, pk=edit['user-pk']) profile = user.get_profile() form = UserForm(edit, instance=user) if 'password' in form.errors: form.errors.pop('password') if form.is_valid(): user = form.save(commit=False) password = edit['password'] if password != u'': user.set_password(password) user.save() cost = edit.get('cost') if cost and profile.group == 'Trainer': # Trainer profile.cost = cost profile.save() status = True message = u'%s successfully updated.' % profile.group.capitalize() else: status = False message = u'There was an error while updating your %s user.' % profile.group return HttpResponse(json.dumps({'status': status, 'msg': message}), content_type='application/json') else: return HttpResponseBadRequest()
def update_user(request, username): user = User.objects.get(username=username) form = UserForm(request.POST, instance=user) if form.is_valid(): form.save() return redirect("/show") return render(request, 'edit.html', {'user': user})
def test_valid_password_accepted(self): form = UserForm( data={ 'email': "*****@*****.**", 'username': "******", 'password1': "Django@123", 'password2': "Django@123" }) self.assertTrue(form.is_valid())
def test_invalid_password_too_common(self): form = UserForm( data={ 'email': "*****@*****.**", 'username': "******", 'password1': "abcd", 'password2': "abcd" }) self.assertFalse(form.is_valid())
def test_invalid_password_numeric(self): form = UserForm( data={ 'email': "*****@*****.**", 'username': "******", 'password1': "12345678", 'password2': "12345678" }) self.assertFalse(form.is_valid())
def test_invalid_password_similar_username(self): form = UserForm( data={ 'email': "*****@*****.**", 'username': "******", 'password1': "test", 'password2': "test" }) self.assertFalse(form.is_valid())
def test_invalid_password_not_confirm(self): form = UserForm( data={ 'email': "*****@*****.**", 'username': "******", 'password1': "Django@123", 'password2': "Django" }) self.assertFalse(form.is_valid())
def new_user(request): if request.method == "POST": form = UserForm(request.POST) if form.is_valid(): try: form.save() return redirect('/show') except: pass #TODO catch This else: form = UserForm() return render(request, 'index.html', {'form': form}) else: form = UserForm() return render(request, 'index.html', {'form': form})
def register(request): # A boolean value for telling the template whether the registration was successful. # Set to False initially. Code changes value to True when registration succeeds. registered = False # If it's a HTTP POST, we're interested in processing form data. if request.method == 'POST': # Attempt to grab information from the raw form information. # Note that we make use of both UserForm and UserProfileForm. user_form = UserForm(data=request.POST) profile_form = UserProfileForm(data=request.POST) # If the two forms are valid... if user_form.is_valid() and profile_form.is_valid(): # Save the user's form data to the database. user = user_form.save() # Now we hash the password with the set_password method. # Once hashed, we can update the user object. user.set_password(user.password) user.save() # Now sort out the UserProfile instance. # Since we need to set the user attribute ourselves, we set commit=False. # This delays saving the model until we're ready to avoid integrity problems. profile = profile_form.save(commit=False) profile.user = user # Did the user provide a profile picture? # If so, we need to get it from the input form and put it in the UserProfile model. if 'picture' in request.FILES: profile.picture = request.FILES['picture'] # Now we save the UserProfile model instance. profile.save() # Update our variable to tell the template registration was successful. registered = True # Invalid form or forms - mistakes or something else? # Print problems to the terminal. # They'll also be shown to the user. else: print user_form.errors, profile_form.errors # Not a HTTP POST, so we render our form using two ModelForm instances. # These forms will be blank, ready for user input. else: user_form = UserForm() profile_form = UserProfileForm() # Render the template depending on the context. return render( request, 'tracker/register.html', { 'user_form': user_form, 'profile_form': profile_form, 'registered': registered })
def signup_view(request): if request.method == 'POST': form = UserForm(request.POST) print(form.is_valid()) if form.is_valid(): user = form.save() Profile.objects.create(name=user, monthly_limit=0, expenses_soFar=0) return redirect('login') else: form = UserForm() return render(request, 'registration/signup.html', {'form': form})
def user_view(request, group): form = UserForm() return render_to_response('tracker/user.html', {'form': form, 'group': group}, context_instance=RequestContext(request))