django - 如何在 Django UpdateView 中访问新数据
问题描述
我想在 success_message 中显示新数据,在我的通用 UpdateView 中进行了更改。而且我不知道如何从表单访问这些数据。
一切都像超标准,代码如下:
class ProductOneUpdateView(UpdateView):
model = ProductOne
fields = ['quantity']
success_message = ................
我想要新的数量,由这个成功消息中显示的用户更改。期待您的解答!
解决方案
正如文档所说:
表单中的已清理数据可用于使用语法进行字符串插值。
%(field_name)s
因此,如果这些是表单字段,您可以编写如下消息:
class ProductOneUpdateView(SuccessMessageMixin, UpdateView):
model = ProductOne
fields = ['quantity']
success_message = 'The quantity is updated to %(quantity)s'
对于成功消息的更高级处理,您可以覆盖get_success_message
方法 [Django-doc],它传递cleaned_data
as 参数,您可以通过以下方式访问(更新的)对象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']
)
推荐阅读
- maven - 代码覆盖率 - Jacaco 和 Sonar 7.0 之间的不一致
- ansible - 从 jinja2 引用主机文件中的变量
- mysql - 从表外的值中对表进行排序但具有关系
- node.js - 使用 webpack 和 express 的 gzip 压缩,仍然提供 bundle.js 而不是 bundle.js.gz
- azure - GEN 0 垃圾爬上 Azure 这正常吗?
- android - 远程服务调用 PeripheralManager.getInstance
- excel - 通过多个字段的复杂组合过滤excel数据透视表
- tensorflow - TensorFlow Wide and Deep Model,我可以使用多少功能?
- c++11 - 如何使用 std:unique_ptr 擦除包含结构的向量?
- spring - @Async 方法中的 Spring @Async 方法