Всем привет.
Ситуация такая:
Есть профиль пользователя, где есть дополнительная информация (Аватар, о себе, что предлагаю).
Задача: сделать форму заполнения профиля, которая бы принимала поля (не обязательно все), и обновляла их (не обязательно все).
class Profile_Form(forms.Form):
avatar = forms.ImageField(label='Загрузить Аватар', required=False)
myself = forms.CharField(widget=forms.Textarea(attrs={'class': 'course_review_form_width'}), label='О себе', required=False)
myoffer = forms.CharField(widget=forms.Textarea(attrs={'class': 'course_review_form_width'}), label='Что предлагаю', required=False)
def update_profile(request, add_id):
token = {}
token.update(csrf(request))
if request.user.is_authenticated():
current_user = request.user
if request.POST:
# profilepage = Profile.objects.get(id = add_id)
form = Profile_Form(request.POST or None, request.FILES or None)
if form.is_valid():
avatar = form.cleaned_data['avatar']
myself = form.cleaned_data['myself']
myoffer = form.cleaned_data['myoffer']
profile_obj = Profile(user=current_user, avatar=avatar, myself=myself, myoffer = myoffer)
profile_obj.save()
return redirect('/profile'+ add_id, token)
else:
return redirect('/profile'+ add_id, token)
else:
return redirect('/profile'+ add_id, token)
else:
return redirect('/profile'+ add_id, token)
Сейчас форма заполняется хорошо. Но:
- если нет изображения, она выдает ошибку, что файл не найдет. Хотя я вроде бы указал, что поле необязательное.
- не получается обновить поле. Хотя в документации написано, что метод save() автоматически определяется сохранение или обновление.