【问题标题】:Django filter update specific field based on ajax returnDjango过滤器根据ajax返回更新特定字段
【发布时间】:2013-09-11 03:19:00
【问题描述】:

我有一个返回以下数据的 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    

但这失败了。有谁知道我如何才能完成这项工作?

【问题讨论】:

    标签: django django-models django-ajax-selects


    【解决方案1】:

    您可以使用关键字参数解包:

    Dbtable.objects.filter(id=save_id).update(**{save_db: save_value}) 
    

    例子:

    >>> def test(a,b):
    ...     return a + b
    ... 
    >>> test(**{'a': 1, 'b': 2})
    3
    

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-30
    • 1970-01-01
    • 2022-08-18
    • 1970-01-01
    • 2015-12-03
    • 2021-12-03
    相关资源
    最近更新 更多