我有一个ajax帖子,它返回以下数据:
{u'related_id': u'9', u'db_name': u'my_field', u'name': u'jsaving_draft', u'value': u'hypothesis sadfasdfadfws asdfasdf'}
在我看来,我有:
if request.is_ajax():
if "jsaving_draft" in request.body:
results = json.loads(request.body)
print results
save_id = results['related_id']
save_db = results['db_name']
save_value = results['value']
temp = Dbtable.objects.filter(id=save_id).update(save_db=save_value)
如何在不对数据库行名称进行硬编码的情况下,基于save_db指定要更新的特定表元素。我的数据库中有一个名为。
的表我尝试过类似的事情:
Dbtable.objects.filter(id=save_id).update("%s"=save_value) % save_db
但那失败了。有没有人知道如何才能使这项工作?
答案 0 :(得分:2)
您可以使用关键字参数解包:
Dbtable.objects.filter(id=save_id).update(**{save_db: save_value})
示例:
>>> def test(a,b):
... return a + b
...
>>> test(**{'a': 1, 'b': 2})
3