Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Create User Specific Objects in Django
- from django.db import models
- from django.contrib.auth.models import User
- class Scripter(models.Model):
- user = models.OneToOneField(User)
- name = models.CharField(max_length=30)
- def __unicode__(self):
- return self.name
- class Title(models.Model):
- author = models.ForeignKey(Scripter)
- def __unicode__(self):
- return self.script_title
- from django import forms
- from django.contrib.auth.models import User
- from django.forms import ModelForm
- from scripters.models import Scripter, Title
- class RegistrationForm(ModelForm):
- username = forms.CharField(label=(u'User Name'))
- email = forms.EmailField(label=(u'Email Address'))
- password = forms.CharField(label=(u'Password'), widget=forms.PasswordInput(render_value=False))
- password1 = forms.CharField(label=(u'Verify Password'), widget=forms.PasswordInput(render_value=False))
- class Meta:
- model = Scripter
- exclude = ('user',)
- def clean_username(self):
- username = self.cleaned_data['username']
- try:
- User.objects.get(username=username)
- except User.DoesNotExist:
- return username
- raise forms.ValidationError("User Name has been taken!")
- def clean(self):
- if self.cleaned_data['password'] != self.cleaned_data['password1']:
- raise forms.ValidationError("The passwords did not match")
- else:
- return self.cleaned_data
- class LoginForm(forms.Form):
- username = forms.CharField(label=(u'Username'))
- password = forms.CharField(label=(u'Password'), widget=forms.PasswordInput(render_value=False))
- class CreateScript(ModelForm):
- title = forms.CharField(label=(u'Script Title'))
- class Meta:
- model = Title
- def clean_title(self):
- title = self.cleaned_data['title']
- return title
- from django.http import HttpResponseRedirect
- from django.contrib.auth.models import User
- from django.contrib.auth.decorators import login_required
- from django.shortcuts import render_to_response
- from django.template import RequestContext
- from scripters.forms import RegistrationForm, LoginForm, CreateScript
- from scripters.models import Scripter, Title
- from django.contrib.auth import authenticate, login, logout
- def ScripterRegistration(request):
- if request.user.is_authenticated():
- return HttpResponseRedirect('/profile/')
- if request.method =='POST':
- form = RegistrationForm(request.POST)
- if form.is_valid():
- user = User.objects.create_user(username=form.cleaned_data['username'],
- email = form.cleaned_data['email'],
- password = form.cleaned_data['password']
- )
- user.save()
- scripter = Scripter(user=user, name=form.cleaned_data['name'])
- scripter.save()
- return HttpResponseRedirect('/profile/')
- else:
- return render_to_response('index.html', {'form': form}, context_instance=RequestContext(request))
- else:
- form = RegistrationForm()
- context = {'form': form}
- return render_to_response('index.html', context, context_instance=RequestContext(request))
- @login_required
- def Profile(request):
- if not request.user.is_authenticated():
- return HttpResponseRedirect('/login/')
- Scripter = request.user.get_profile
- context = {'Scripter': Scripter}
- return render_to_response('profile.html', context, context_instance=RequestContext(request))
- def LoginRequest(request):
- if request.user.is_authenticated():
- return HttpResponseRedirect('/profile/')
- if request.method == 'POST':
- submit = LoginForm(request.POST)
- if submit.is_valid():
- username = submit.cleaned_data['username']
- password = submit.cleaned_data['password']
- scripter = authenticate(username=username, password=password)
- if scripter is not None:
- login(request, scripter)
- return HttpResponseRedirect('/profile/')
- else:
- return HttpResponseRedirect('/login/')
- else:
- submit = LoginForm()
- context = {'submit': submit}
- return render_to_response('login.html',context, context_instance=RequestContext(request))
- def LogoutRequest(request):
- logout(request)
- return HttpResponseRedirect('/login/')
- @login_required
- def NewScript(request):
- if not request.user.is_authenticated():
- return HttpResponseRedirect('/login/')
- if request.method =='POST':
- title_form = CreateScript(request.POST)
- if title_form.is_valid():
- title = User.objects.get_or_create(
- Title = title_form.cleaned_data['title'],
- )
- title.save()
- script = Title(script_title=title_form.cleaned_data['title'])
- script.save()
- return HttpResponseRedirect('/edit/')
- else:
- return render_to_response('NewScript.html', {'title_form': title_form}, context_instance=RequestContext(request))
- else:
- title_form = CreateScript()
- context = {'title_form': title_form}
- return render_to_response('NewScript.html', context, context_instance=RequestContext(request))
- scripter.title_set.all()
Add Comment
Please, Sign In to add comment