我正在使用ajax将数据发送到django视图,数据通过request.POST进入.我发布了需要更新的模型字段以及模型值.我只需要知道如何使用我从request.POST ['field_name']中提取的字段名称变量,这样我就可以在模型中设置字段了.这是我的代码.
field_name = request.POST["field_name"]
field_value = request.POST["field_value"]
member_id = get_member_session(request).id
try:
member = Members.objects.get(id=member_id)
except:
status="ERROR-USER-DOES-NOT-EXIST"
return json_status(status)
try:
member.field_name=field_value
member.save()
return json_status('OK')
except:
status = "USER_SAVE_ERROR"
return json_status(status)
Run Code Online (Sandbox Code Playgroud)
member.field_name显然不对.我需要使用eval(field_name)或类似的东西吗?如果可能的话,我不愿意.
非常感谢
丰富
使用setattr,允许您在对象上设置变量属性:
try:
member._meta.get_field(field_name)
except member.FieldDoesNotExist:
# return something to indicate the field doesn't exist
return json_status('USER_FIELD_ERROR')
setattr(member, field_name, field_value)
member.save()
return json_status('OK')
Run Code Online (Sandbox Code Playgroud)
编辑:我更新使用model._meta.get_field,因为这是一个更好的方法.在这个答案中提到了另一个问题.
| 归档时间: |
|
| 查看次数: |
664 次 |
| 最近记录: |