def create_account(request, group=""): """Account creating page view""" # if this is a POST request we need to process the form data if request.method == 'POST': # create a form instance and populate it with data from the request: form = UserForm(request.POST) # check whether it's valid: if form.is_valid(): # process the data in form.cleaned_data and create new user with processed data user = User.objects.create_user( username=form.cleaned_data['username'], first_name=form.cleaned_data['first_name'], last_name=form.cleaned_data['last_name'], email=form.cleaned_data['email'], password=form.cleaned_data['password'], ) group = Group.objects.get(name=form.cleaned_data['groups']) user.groups.add(group) user.save() form.clean() # redirect to a new URL: return HttpResponseRedirect('/rules/') # if a GET (or any other method) we'll create a blank form else: if group: group = Group.objects.get(name=group) form = UserForm(initial={'groups': group}) else: form = UserForm() return render(request, 'app/create-account.html', {'form': form})
def test_account_creation_form(self): """Check that account creation form is valid""" form_data = { 'username': '******', 'password': '******', 'first_name': 'test', 'last_name': 'test', 'email': '*****@*****.**', 'groups': self.test_group.name } form = UserForm(data=form_data) self.assertTrue(form.is_valid())