【问题标题】:Django Update Model Field with Variable User Input... .update(key=value)带有可变用户输入的 Django 更新模型字段... .update(key=value)
【发布时间】:2016-04-22 02:41:49
【问题描述】:

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

处理程序将收到一个带有两个键的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() 提供的变量。

感谢任何人就如何或是否可能提出的意见。

【问题讨论】:

    标签: python django python-2.7 django-models


    【解决方案1】:

    您不需要遍历字典。您可以将其作为 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)
    

    【讨论】:

    • 似乎有点工作。尝试在单独的表中调整布尔值,它似乎没有更新,但它没有抛出任何错误。我试过“0”和“假”...socket.send(JSON.stringify({ "command": "update_profile", "user_id": "1", "profile_updates": {"custom_permissions":[{"can_chat":"0"},]} }))
    • 我认为你应该发送一个整数或布尔值。
    • 是的,我找到了。不是 Javascript 开发人员。必须先创建一个变量并将变量传递到 JSON.stringify() var test = { "command": "update_profile", "user_id": "1", "profile_updates": { "custom_permissions":[{"can_chat":false}]} } socket.send(JSON.stringify(test)) 谢谢!!
    猜你喜欢
    • 2016-11-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-05-16
    • 1970-01-01
    • 2019-12-22
    • 1970-01-01
    • 2013-08-19
    相关资源
    最近更新 更多