具有可变用户输入的Django更新模型字段... .update(key = value)

时间:2016-04-22 02:41:50

标签: python django python-2.7 django-models

我正在尝试创建一个函数,允许根据前端输入更新字段。

处理程序将收到带有两个键的profile_updates字典。每个都包含一个键/值对列表。

list_of_updates['custom_permissions'] = [{"is_staff":"True"},{"other_permission":"False"}]

def update_profile(message):
    list_of_updates = message['profile_updates']
    user_update_id = message['user_id']

    for update in list_of_updates['custom_permissions']:
        for key, value in update.iteritems():
            User.objects.filter(id=user_update_id).update(key=value)

我想把'key'变成一个来自.iteritems()的变量。

感谢任何人对如何或是否可能的意见。

1 个答案:

答案 0 :(得分:1)

你不需要循环通过dict。您可以将其作为kwarg扩展传递。

def update_profile(message):
    list_of_updates = message['profile_updates']
    user_update_id = message['user_id']

    for update in list_of_updates['custom_permissions']:
        User.objects.filter(id=user_update_id).update(**update)