【问题标题】:Add extra field to result after queryset for context rendering在查询集后为结果添加额外字段以进行上下文渲染
【发布时间】:2015-12-17 12:18:06
【问题描述】:

目前我想做这样的事情:

entity_info = get_object_or_404(Entity, pk=entity_id)
entity_info.review = 5

我可以添加字段并传递给渲染,它工作正常。但是,现在我想一次添加很多字段,最好与字典合并。像这样的:

entity_info.update(new_dict)

我可以知道怎么做吗?谢谢

【问题讨论】:

    标签: python django django-models django-orm


    【解决方案1】:

    您可以遍历字典的项目,并使用setattr

    entity_info = get_object_or_404(Entity, pk=entity_id)
    for key, value in new_dict.items():
        setattr(entity_info, key, value)
    

    这应该适用于属性。如果您要分配给多对多字段,您可能需要做其他事情。

    【讨论】:

    • 感谢您的回答。有没有更pythonic/更短的方法来做到这一点?
    • 使用setattr 是一种标准的Python 技术。只有两条线,你希望它有多短? ;)
    • 我只是贪心:) Tks
    猜你喜欢
    • 2016-01-01
    • 2021-04-02
    • 1970-01-01
    • 2011-04-27
    • 2015-10-17
    • 1970-01-01
    • 1970-01-01
    • 2012-08-20
    • 1970-01-01
    相关资源
    最近更新 更多