【问题标题】:How to access new data in Django UpdateView如何在 Django UpdateView 中访问新数据
【发布时间】:2023-03-17 06:46:01
【问题描述】:

我想在 success_message 中显示新数据,在我的通用 UpdateView 中进行了更改。 而且我不知道如何从表单访问这些数据。

一切都像超标准,代码是这样的:

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

我想要新的数量,由这个成功消息中显示的用户更改。 期待您的回答!

【问题讨论】:

    标签: django forms view


    【解决方案1】:

    正如文档所说:

    从表单中清除的数据可用于字符串插值,使用%(field_name)s 语法。

    因此,如果这些是表单字段,您可以编写如下消息:

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

    对于成功消息的更高级处理,您可以覆盖get_success_message method [Django-doc],这会将cleaned_data作为参数传递,您可以通过self.object访问(更新的)对象:

    class ProductOneUpdateView(SuccessMessageMixin, UpdateView):
        model = ProductOne
        fields = ['quantity']
        def get_success_message(self, cleaned_data):
            return 'The quantity of {} is updated to {}'.format(
                self.object,
                self.cleaned_data['quantity']
            )

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-05-08
      • 1970-01-01
      • 2015-10-17
      • 2014-10-14
      • 1970-01-01
      • 1970-01-01
      • 2021-02-07
      • 2012-03-05
      相关资源
      最近更新 更多