Как правильно валидировать формы в Django?

Ситуация:

1) Есть вьюшка, которая выгружает данные нужного юзера в карточку и создает форуму заполнения дополнительных полей.

def profile(request, profile_id):
    useritem = User.objects.get(id = profile_id)    
    form = Profile_Form(request.POST)

    if request.user.is_authenticated():
        current_user = request.user
        if str(current_user.id) == str(useritem.id):            
                profileinfo = {
                    # 'avatar' : get_thumbnailer(useritem.profile.avatar)['avatar'], #убрали в самом конец .url
                    'avatar' : useritem.profile.avatar,
                    'myself' : useritem.profile.myself,
                    'myoffer' : useritem.profile.myoffer,
                    'get_status' : useritem.profile.get_status,
                    'get_plus' : useritem.profile.get_plus,
                    "editable" : True,             

            context = {
                "useritem" : useritem,
                "profileinfo" : profileinfo,
                "form" : form,                
            }
            return render(request, 'faceset/profile.html', context)


2) Есть вьюшка, которая обрабатывает форму заполнения данных.

def update_profile(request, add_id):
    token = {}
    token.update(csrf(request))
    if request.user.is_authenticated():
        current_user = request.user

        useritem = User.objects.get(id = current_user.id)       
    
        if request.POST:
            form = Profile_Form(request.POST)
            if form.is_valid():        
                myself = form.cleaned_data['myself']
                myoffer = form.cleaned_data['myoffer']
                profile_obj = Profile(user=current_user, myself=myself, myoffer = myoffer)
                profile_obj.save()
                return redirect('/profile'+ add_id, token)
            else:
                'error' = "Ошибка"
                return redirect('/profile'+ add_id, token, error)


И проблема заключается в том, что в случае нарушения валидации второй вьюшки, я не могу передать информацию по ошибке в 1 вьюшку, чтобы отрисовалась ошибка {{ error }}.

_________

Т.е. я не понимаю, как связать валидацию из одной вьюшки во вторую, если первая вьюшка генерирует форму, а вторая вьюшка её обрабатывает. Так как из второй вьюшки не получается передать какую-либо информацию в первую.
  • Вопрос задан
  • 260 просмотров
Пригласить эксперта
Ваш ответ на вопрос

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

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