From 2d13c64cccabf18b2ee17dac2f0c54280edd9327 Mon Sep 17 00:00:00 2001 From: Kriti Godey Date: Wed, 3 Mar 2010 17:52:36 -0500 Subject: [PATCH] Added the "create new user" view. --- forms.py | 11 ++++++++++- templates/newuser.html | 11 +++++++++++ urls.py | 1 + views.py | 34 ++++++++++++++++++++++++++++++++-- 4 files changed, 54 insertions(+), 3 deletions(-) create mode 100644 templates/newuser.html diff --git a/forms.py b/forms.py index cd81af2..380f6a4 100644 --- a/forms.py +++ b/forms.py @@ -15,4 +15,13 @@ class IngredientForm(ModelForm): class Meta: model = Ingredient - exclude = ('slug',) \ No newline at end of file + exclude = ('slug',) + + +class NewUserForm(forms.Form): + first_name = forms.CharField() + last_name = forms.CharField() + email = forms.EmailField() + username = forms.CharField() + password = forms.CharField(widget=forms.PasswordInput) + confirm_password = forms.CharField(widget=forms.PasswordInput) diff --git a/templates/newuser.html b/templates/newuser.html new file mode 100644 index 0000000..fb53041 --- /dev/null +++ b/templates/newuser.html @@ -0,0 +1,11 @@ + + + Create account + +

Create account

+
+ {{ cform.as_p }} + +
+ + \ No newline at end of file diff --git a/urls.py b/urls.py index a2a7ff7..84cb5ae 100644 --- a/urls.py +++ b/urls.py @@ -5,6 +5,7 @@ from django.shortcuts import render_to_response urlpatterns = patterns('', (r'^addsandwich/$', views.add_sandwich), (r'^login/$', views.login_view), + (r'^newuser/$', views.create_user), (r'^addingredient/$', views.add_ingredient), (r'^allsandwiches/$', views.all_sandwich), (r'^newsandwiches/$', views.newsandwiches), diff --git a/views.py b/views.py index efced1f..eb02bad 100644 --- a/views.py +++ b/views.py @@ -1,5 +1,6 @@ from django.http import HttpResponse -from forms import SandwichForm, IngredientForm +from django.contrib.auth.models import User +from forms import SandwichForm, IngredientForm, NewUserForm from django.shortcuts import render_to_response from django.core.files.uploadedfile import SimpleUploadedFile from models import Sandwich, Ingredient @@ -55,6 +56,7 @@ def newsandwiches(request): raise Http404 return render_to_response('allsandwiches.html', {'sandwiches': sandwiches,}) + def sandwich_month(request, year, month): try: sandwiches = Sandwich.objects.filter(date_made__month=month, date_made__year=year) @@ -89,4 +91,32 @@ def login_view(request): return HttpResponse(thankshtml) except KeyError: aform = AuthenticationForm() - return render_to_response('login.html', {'aform': aform,}) \ No newline at end of file + return render_to_response('login.html', {'aform': aform,}) + +def create_user(request): + if request.user.is_authenticated(): + thankshtml = "

You are already logged in!

" + return HttpResponse(thankshtml) + elif request.method == 'POST': # If the form has been submitted... + form = NewUserForm(request.POST) # A form bound to the POST data + if form.is_valid(): # All validation rules pass + username = form.cleaned_data['username'] + first_name = form.cleaned_data['first_name'] + last_name = form.cleaned_data['last_name'] + password = form.cleaned_data['password'] + cpassword = form.cleaned_data['confirm_password'] + email = form.cleaned_data['email'] + if password == cpassword: + user = User.objects.create_user(username, email, password) + user.save() + user.first_name = first_name + user.last_name = last_name + user.save() + thankshtml = "

Thanks! You are now a new user!

" + return HttpResponse(thankshtml) # Redirect after POST + else: + thankshtml = "

Your passwords don't match!

" + return HttpResponse(thankshtml) # Redirect after POST + else: + form = NewUserForm() # An unbound form + return render_to_response('newuser.html', {'cform': form,}) \ No newline at end of file -- 2.20.1