Django对象模型-动态设置值

亚历克斯·阿尔维斯(Alex Alves)

我如何通过遍历请求GET中的参数来动态设置Django对象模型的值。

因此,从请求对象中获取字段名称和值,然后使用该字段名称和值进行迭代,并使用相应的字段更新Django模型。

user = request.GET.get('user')
name = request.GET.get('name')
created = request.GET.get('created')
modified = request.GET.get('modified')

obj, created = Obj.objects.get_or_create(user=user, name=name)

if created:

    obj.created = created
    obj.modified = modified

    obj.save(update_fields=['created', 'modified'])
dm03514

通常,这是通过来实现的,ModelForm它允许您将请求参数映射到模型实例并验证那些参数,然后有选择地保存/更新实例。

使用表单可能是最安全的方法,也是最佳实践,但是没有理由不能动态地迭代表单。 request.GET

for k, v in request.GET.items():
  setattr(obj, k, v)

obj.save(update_fields=[request.GET.keys()])

这缺少对k的实际属性的检查Obj类型声明应在保存时进行,但是表单工作流程允许使用统一的标准化方法来检测类型错误,并在发生错误时将其提供给客户端。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章