Python Django对象模型-动态设置值
如何通过迭代请求GET中的参数来动态设置Django对象模型的值 因此,从请求对象获取字段名和值,并使用它们来迭代抛出并使用相应的字段更新Django模型Python Django对象模型-动态设置值,python,django,django-forms,Python,Django,Django Forms,如何通过迭代请求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
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'])
这通常通过以下方式实现:它允许您将请求参数映射到模型实例,并验证这些参数,然后选择保存/更新实例 使用表单可能是最安全的方法,也是最佳实践,但没有理由不能动态迭代
请求。获取
for k, v in request.GET.items():
setattr(obj, k, v)
obj.save(update_fields=[request.GET.keys()])
这缺少检查k
是否为Obj
的实际属性。类型断言应该在保存时进行,但是表单工作流允许使用统一的标准化方法来检测类型错误,并在发生错误时将其呈现给客户端。使用模型表单