Cześć mam problem z edytowaniem profilu użytkownika.
view.py
from .forms import LoginForm, UserRegistrationForm, UserEditForm, ProfileEditForm
from .models import Profile
.
.
.
@login_required
def edit(request):
"""Umożliwiamy użytkownikowi edycję profilu"""
if request.method == 'POST':
user_form = UserEditForm(instance=request.user, data=request.POST)
proifle_form = ProfileEditForm(instance=request.user.profile, data=request.POST, files=request.FILES)
if user_form.is_valid() and profile_form.is_valid():
user_form.save()
profile_form.save()
else:
user_form = UserEditForm(instance=request.user)
profile_form = ProfileEditForm(instance=request.user.profile)
return render(request, 'account/edit.html', {'user_form': user_form, 'profile_form': profile_form})
forms.py
from django.contrib.auth.models import User
from django import forms
from .models import Profile
.
.
.
class UserEditForm(forms.ModelForm):
class Meta:
model = User
fields = ('first_name', 'last_name', 'email')
class ProfileEditForm(forms.ModelForm):
class Meta:
model = Profile
fields = ('date_of_birth', 'photo')
models.py
from django.db import models
from django.conf import settings
# Create your models here.
class Profile(models.Model):
"""Model użytkownika"""
user = models.OneToOneField(settings.AUTH_USER_MODEL, on_delete=models.CASCADE)
date_of_birth = models.DateField(blank=True, null=True)
photo = models.ImageField(upload_to='users/%Y/%m/%d', blank=True)
def __str__(self):
return f'Profile for user {self.user.username}'
Gdy edytuje informacje o użytkowniku to wyskakuje mi błąd
UnboundLocalError at /account/edit/
local variable 'profile_form' referenced before assignment
problem jes w ProfileEditForm valid = Unknow ale nie wiem dlaczego tak jest.
Przez panel admina mogę dodać zdjęcie itd. I wszystko się zapisuje. Z poziomu użytkownika już nie mogę