Как получить доступ к новым данным в Django UpdateView - PullRequest
1 голос
/ 24 января 2020

Я хотел отобразить в success_message новые данные, измененные в моем обобщенном c UpdateView. И я не знаю, как получить доступ к этим данным из формы.

Все как супер стандарт, код выглядит так:

class ProductOneUpdateView(UpdateView):
    model = ProductOne
    fields = ['quantity']
    success_message = ................

И я хочу новое количество, измененное пользователем, показанное в этом success_message , Ждем ваших ответов!

1 Ответ

2 голосов
/ 24 января 2020

Как сказано в документации:

очищенные данные из формы доступны для интерполяции строк с использованием синтаксиса %(field_name)s.

Таким образом, если это поля формы, вы можете написать сообщение, например:

class ProductOneUpdateView(SuccessMessageMixin, UpdateView):
    model = ProductOne
    fields = ['quantity']
    success_message = 'The quantity is updated to <b>%(quantity)s</b>'

Для более сложной обработки сообщений об успехе вы можете переопределить get_success_message method [Django -doc] , в качестве параметра передается cleaned_data, и вы можете получить доступ к (обновленному) объекту через self.object:

class ProductOneUpdateView(SuccessMessageMixin, UpdateView):
    model = ProductOne
    fields = ['quantity']
    def <b>get_success_message</b>(self, cleaned_data):
        return 'The quantity of {} is updated to {}'.format(
            self.object,
            self.cleaned_data['quantity']
        )
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...