Guest User

Untitled

a guest
Dec 21st, 2018
142
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.76 KB | None | 0 0
  1. from django.db import models
  2. from django.conf import settings
  3.  
  4. class Profile(models.Model):
  5. user = models.OneToOneField(settings.AUTH_USER_MODEL, on_delete=models.CASCADE)
  6. photo = models.ImageField(upload_to='users/', blank=True)
  7.  
  8. def __str__(self):
  9. return 'Profile for user {}'.format(self.user.username)
  10.  
  11. from django.contrib.auth.models import User
  12. from .models import Profile
  13. from django import forms
  14.  
  15. class UserRegistrationForm(forms.ModelForm):
  16. password = forms.CharField(label='Password', widget=forms.PasswordInput)
  17. password2 = forms.CharField(label='Repeat password', widget=forms.PasswordInput)
  18.  
  19. class Meta:
  20. model = User
  21. fields = ('username', 'first_name', 'email')
  22.  
  23. def clean_password2(self):
  24. cd = self.cleaned_data
  25. if cd['password'] != cd['password2']:
  26. raise forms.ValidationError('Passwords don't match.')
  27. return cd['password2']
  28.  
  29. class ProfileForm(forms.ModelForm):
  30. class Meta:
  31. model = Profile
  32. fields = ('photo',)
  33.  
  34. from django.shortcuts import render
  35. from .forms import UserRegistrationForm, ProfileForm
  36. from .models import Profile
  37.  
  38. def register(request):
  39. if request.method == 'POST':
  40. user_form = UserRegistrationForm(request.POST)
  41. profile_form = ProfileForm(data=request.POST, files=request.FILES)
  42.  
  43. if user_form.is_valid() and profile_form.is_valid():
  44. new_user = user_form.save(commit=False)
  45. new_user.set_password(user_form.cleaned_data['password'])
  46.  
  47. new_user.save()
  48. new_user.refresh_from_db()
  49.  
  50. new_profile = Profile.objects.create(user=new_user)
  51. new_profile.save()
  52.  
  53. return render(request, 'account/register_done.html', {
  54. 'new_user': new_user,
  55. 'new_profile': new_profile
  56. })
  57. else:
  58. user_form = UserRegistrationForm()
  59. new_profile = ProfileForm()
  60. return render(request, 'account/register.html', {
  61. 'user_form': user_form,
  62. 'new_profile': new_profile
  63. })
  64.  
  65. {% extends "base.html" %}
  66.  
  67. {% block title %}Create an account{% endblock %}
  68.  
  69. {% block content %}
  70. <h1>Create an account</h1>
  71. <p>Please, sign up using the following form:</p>
  72. <form action="." method="post" enctype="multipart/form-data">
  73. {{ user_form.as_p }}
  74. {{ new_profile.as_p }}
  75. {% csrf_token %}
  76. <p><input type="submit" value="Create my account"></p>
  77. </form>
  78. {% endblock %}
  79.  
  80. Profile.objects.create(user=new_user)
  81.  
  82. user_profile = profile_form.save(commit=False)
  83. user_profile.user = new_user
  84. user_profile.save()
  85.  
  86. new_profile = Profile.objects.create(user=new_user)
  87. new_profile.save()
  88.  
  89. new_profile = Profile.objects.create(user=new_user, photo=request.FILES['photo'])
  90. new_profile.save()
Add Comment
Please, Sign In to add comment