У меня есть такой код:
def register(request):
if request.method =='POST':
form = RegistrationForm(request.POST)
if form.is_valid():
new = form.save(commit=False)
new.save()
# return redirect(reverse('accounts:home'))
return redirect('/home/')
else:
form = RegistrationForm()
args = {
'form': form,
}
return render(request, 'accounts/reg_form.html', args)
class RegistrationForm(UserCreationForm):
email = forms.EmailField(required=True)
class Meta:
model = User
fields = (
'username',
'first_name',
'last_name',
'email',
'password1',
'password2',
)
def save(self, commit=True):
user = super(RegistrationForm, self).save(commit=False)
user.first_name = self.cleaned_data['first_name']
user.last_name = self.cleaned_data['last_name']
user.email = self.cleaned_data['email']
if commit:
user.save()
return user
Но при этом есть еще и модель UserProfile и нужно сделать так, чтобы при регистрации заполнял пользователь и ее.
class UserProfile(models.Model):
user = models.OneToOneField(User)
description = models.CharField(max_length=100, default='')
city = models.CharField(max_length=100, default='')
website = models.URLField(default='')
phone = models.IntegerField(default=0)
image = models.ImageField(upload_to='profile_image', blank=True)
london = UserProfileManager()
def __str__(self):
return self.user.username
Как это сделать? Сейчас выводится только поля из
from django.contrib.auth.models import User