Задать вопрос
maxclax
@maxclax

Как обновить модель Django?

Столкнулся с некоторым непониманием в обновлении данных персоны. Есть авторизованный пользователь, который редактирует свой профиль. Этой вюхой, я ему подсовываю форму:
@login_required
def profile(request):
    # проверяем запрос с аякса
    if request.method == "POST" and request.is_ajax():

        person_form = PersonProfileForm(request.POST)

        # проходим валидацию формы
        if person_form.is_valid():

            try:
                
                
                
                # результат операции
                data = {
                    'success': _('Профиль обновлен!')
                }

            except:
                data = {
                    'try': True
                }

        else:
            # результат операции
            data = {
                'errors': person_form.errors
            }

        # позвращаем результат в JSON
        return HttpResponse(json.dumps(data))

    else:
        # регистрируем форму
        person_form = PersonProfileForm()

    # рендеринг шаблона
    return render(request, 'person/profile.html', {'form': person_form})


Эту форму:

class PersonProfileForm(forms.ModelForm):
    """
    Создание новой персоны
    """

    first_name = forms.CharField(label='Ваше имя', required=True)
    last_name = forms.CharField(label='Ваша фамилия', required=True)

    class Meta:
        model = Person
        fields = ['first_name', 'last_name', 'country']
        labels = {
            'country': 'От куда Вы'
        }
        help_texts = {
            'first_name': _('Обязательно указывайте все данные реальные!'),
        }


И собственно юзер заполняя ее передает аяксом данные на обработчик. Их приняло, прошло валидацию. И что? :) Как мне обновить именно ту персону, которая авторизованная в данный момент? Я же не должен передавать скрыто ID юзера, получать обьект новый и его обновлять? Есть другой выход?
  • Вопрос задан
  • 3232 просмотра
Подписаться 1 Оценить Комментировать
Решения вопроса 1
sim3x
@sim3x
stackoverflow.com/questions/8466768/using-request-...

В request.user есть текущий пользователь

Если не вийдет, то стоит запостить модель.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы
Strikt Москва
от 100 000 до 180 000 ₽
ITK academy Саратов
от 75 000 ₽
Sim-Ba Pay Санкт-Петербург
от 180 000 ₽