Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- from django.db import models
- from django.conf import settings
- class Profile(models.Model):
- user = models.OneToOneField(settings.AUTH_USER_MODEL, on_delete=models.CASCADE)
- photo = models.ImageField(upload_to='users/', blank=True)
- def __str__(self):
- return 'Profile for user {}'.format(self.user.username)
- from django.contrib.auth.models import User
- from .models import Profile
- from django import forms
- class UserRegistrationForm(forms.ModelForm):
- password = forms.CharField(label='Password', widget=forms.PasswordInput)
- password2 = forms.CharField(label='Repeat password', widget=forms.PasswordInput)
- class Meta:
- model = User
- fields = ('username', 'first_name', 'email')
- def clean_password2(self):
- cd = self.cleaned_data
- if cd['password'] != cd['password2']:
- raise forms.ValidationError('Passwords don't match.')
- return cd['password2']
- class ProfileForm(forms.ModelForm):
- class Meta:
- model = Profile
- fields = ('photo',)
- from django.shortcuts import render
- from .forms import UserRegistrationForm, ProfileForm
- from .models import Profile
- def register(request):
- if request.method == 'POST':
- user_form = UserRegistrationForm(request.POST)
- profile_form = ProfileForm(data=request.POST, files=request.FILES)
- if user_form.is_valid() and profile_form.is_valid():
- new_user = user_form.save(commit=False)
- new_user.set_password(user_form.cleaned_data['password'])
- new_user.save()
- new_user.refresh_from_db()
- new_profile = Profile.objects.create(user=new_user)
- new_profile.save()
- return render(request, 'account/register_done.html', {
- 'new_user': new_user,
- 'new_profile': new_profile
- })
- else:
- user_form = UserRegistrationForm()
- new_profile = ProfileForm()
- return render(request, 'account/register.html', {
- 'user_form': user_form,
- 'new_profile': new_profile
- })
- {% extends "base.html" %}
- {% block title %}Create an account{% endblock %}
- {% block content %}
- <h1>Create an account</h1>
- <p>Please, sign up using the following form:</p>
- <form action="." method="post" enctype="multipart/form-data">
- {{ user_form.as_p }}
- {{ new_profile.as_p }}
- {% csrf_token %}
- <p><input type="submit" value="Create my account"></p>
- </form>
- {% endblock %}
- Profile.objects.create(user=new_user)
- user_profile = profile_form.save(commit=False)
- user_profile.user = new_user
- user_profile.save()
- new_profile = Profile.objects.create(user=new_user)
- new_profile.save()
- new_profile = Profile.objects.create(user=new_user, photo=request.FILES['photo'])
- new_profile.save()
Add Comment
Please, Sign In to add comment