【问题标题】:How to keep values from a queryset?如何保留查询集中的值?
【发布时间】:2022-01-13 17:35:33
【问题描述】:

我的更新功能有问题。 我创建了一个查询集来获取一些我存储在变量中的对象。 我在基础上做了一些修改。 我再次执行相同的查询集并将其存储在另一个变量中。

我的 2 个查询集的结果不相等,但 2 个变量是。

def update(self, instance, validated_data):
        old_priorities = DiscountPriority.objects.filter(machine__in=instance.machines.all())
        print(old_priorities)
        # <QuerySet [<DiscountPriority: Priority 1 of a13 on dzafezfdezaaaa>, <DiscountPriority: Priority 1 of a13 on test19>]>
        response = super(DiscountSerializer, self).update(instance, validated_data)
        
        current_priorities = DiscountPriority.objects.filter(machine__in=instance.machines.all())
        print(current_priorities)
        # <QuerySet [<DiscountPriority: Priority 1 of a13 on dzafezfdezaaaa>]>
        print(old_priorities)
        # <QuerySet [<DiscountPriority: Priority 1 of a13 on dzafezfdezaaaa>]>

【问题讨论】:

  • 如果我将old_priorities = DiscountPriority.objects.filter(machine__in=instance.machines.all()) 替换为old_priorities = list(DiscountPriority.objects.filter(machine__in=instance.machines.all())) 就可以了,但我不明白为什么

标签: django django-orm


【解决方案1】:

您的查询集正在检索相同的对象。这很重要。

它仍然是同一个对象。对象由它们的主键标识

【讨论】:

    猜你喜欢
    • 2021-09-06
    • 2018-01-17
    • 2021-05-19
    • 2013-08-16
    • 1970-01-01
    • 2023-03-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多