Как заполнить профиль/обновить профиль по наличию?

Всем привет.

Ситуация такая:

Есть профиль пользователя, где есть дополнительная информация (Аватар, о себе, что предлагаю).

Задача: сделать форму заполнения профиля, которая бы принимала поля (не обязательно все), и обновляла их (не обязательно все).

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() автоматически определяется сохранение или обновление.
  • Вопрос задан
  • 206 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы