Guest User

Untitled

a guest
Sep 14th, 2018
101
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.16 KB | None | 0 0
  1. Create User Specific Objects in Django
  2. from django.db import models
  3. from django.contrib.auth.models import User
  4.  
  5. class Scripter(models.Model):
  6. user = models.OneToOneField(User)
  7. name = models.CharField(max_length=30)
  8.  
  9. def __unicode__(self):
  10. return self.name
  11.  
  12. class Title(models.Model):
  13. author = models.ForeignKey(Scripter)
  14.  
  15. def __unicode__(self):
  16. return self.script_title
  17.  
  18. from django import forms
  19. from django.contrib.auth.models import User
  20. from django.forms import ModelForm
  21. from scripters.models import Scripter, Title
  22.  
  23. class RegistrationForm(ModelForm):
  24. username = forms.CharField(label=(u'User Name'))
  25. email = forms.EmailField(label=(u'Email Address'))
  26. password = forms.CharField(label=(u'Password'), widget=forms.PasswordInput(render_value=False))
  27. password1 = forms.CharField(label=(u'Verify Password'), widget=forms.PasswordInput(render_value=False))
  28.  
  29. class Meta:
  30. model = Scripter
  31. exclude = ('user',)
  32.  
  33. def clean_username(self):
  34. username = self.cleaned_data['username']
  35. try:
  36. User.objects.get(username=username)
  37. except User.DoesNotExist:
  38. return username
  39. raise forms.ValidationError("User Name has been taken!")
  40.  
  41. def clean(self):
  42. if self.cleaned_data['password'] != self.cleaned_data['password1']:
  43. raise forms.ValidationError("The passwords did not match")
  44. else:
  45. return self.cleaned_data
  46.  
  47. class LoginForm(forms.Form):
  48. username = forms.CharField(label=(u'Username'))
  49. password = forms.CharField(label=(u'Password'), widget=forms.PasswordInput(render_value=False))
  50.  
  51. class CreateScript(ModelForm):
  52. title = forms.CharField(label=(u'Script Title'))
  53.  
  54. class Meta:
  55. model = Title
  56.  
  57. def clean_title(self):
  58. title = self.cleaned_data['title']
  59. return title
  60.  
  61. from django.http import HttpResponseRedirect
  62. from django.contrib.auth.models import User
  63. from django.contrib.auth.decorators import login_required
  64. from django.shortcuts import render_to_response
  65. from django.template import RequestContext
  66. from scripters.forms import RegistrationForm, LoginForm, CreateScript
  67. from scripters.models import Scripter, Title
  68. from django.contrib.auth import authenticate, login, logout
  69.  
  70. def ScripterRegistration(request):
  71. if request.user.is_authenticated():
  72. return HttpResponseRedirect('/profile/')
  73. if request.method =='POST':
  74. form = RegistrationForm(request.POST)
  75. if form.is_valid():
  76. user = User.objects.create_user(username=form.cleaned_data['username'],
  77. email = form.cleaned_data['email'],
  78. password = form.cleaned_data['password']
  79. )
  80. user.save()
  81. scripter = Scripter(user=user, name=form.cleaned_data['name'])
  82. scripter.save()
  83.  
  84. return HttpResponseRedirect('/profile/')
  85. else:
  86. return render_to_response('index.html', {'form': form}, context_instance=RequestContext(request))
  87. else:
  88. form = RegistrationForm()
  89. context = {'form': form}
  90. return render_to_response('index.html', context, context_instance=RequestContext(request))
  91.  
  92. @login_required
  93. def Profile(request):
  94. if not request.user.is_authenticated():
  95. return HttpResponseRedirect('/login/')
  96. Scripter = request.user.get_profile
  97. context = {'Scripter': Scripter}
  98. return render_to_response('profile.html', context, context_instance=RequestContext(request))
  99.  
  100. def LoginRequest(request):
  101. if request.user.is_authenticated():
  102. return HttpResponseRedirect('/profile/')
  103. if request.method == 'POST':
  104. submit = LoginForm(request.POST)
  105. if submit.is_valid():
  106. username = submit.cleaned_data['username']
  107. password = submit.cleaned_data['password']
  108. scripter = authenticate(username=username, password=password)
  109. if scripter is not None:
  110. login(request, scripter)
  111. return HttpResponseRedirect('/profile/')
  112. else:
  113. return HttpResponseRedirect('/login/')
  114. else:
  115. submit = LoginForm()
  116. context = {'submit': submit}
  117. return render_to_response('login.html',context, context_instance=RequestContext(request))
  118.  
  119. def LogoutRequest(request):
  120. logout(request)
  121. return HttpResponseRedirect('/login/')
  122.  
  123. @login_required
  124. def NewScript(request):
  125. if not request.user.is_authenticated():
  126. return HttpResponseRedirect('/login/')
  127. if request.method =='POST':
  128. title_form = CreateScript(request.POST)
  129. if title_form.is_valid():
  130. title = User.objects.get_or_create(
  131. Title = title_form.cleaned_data['title'],
  132. )
  133. title.save()
  134. script = Title(script_title=title_form.cleaned_data['title'])
  135. script.save()
  136.  
  137. return HttpResponseRedirect('/edit/')
  138. else:
  139. return render_to_response('NewScript.html', {'title_form': title_form}, context_instance=RequestContext(request))
  140. else:
  141. title_form = CreateScript()
  142. context = {'title_form': title_form}
  143. return render_to_response('NewScript.html', context, context_instance=RequestContext(request))
  144.  
  145. scripter.title_set.all()
Add Comment
Please, Sign In to add comment