django 中的查询数据与列表中的 id 匹配

Query data in django matched with ids in a list

我正在尝试更新我的 Django 模型中的一些数据,但是种类仍然停留在如何获取特定属性上。 看到我有一个列表名称 ids = ['112', '111', '114', '113', '115'] 我有一个模型名称 Member

class Member(models.Model ):
    user = models.ForeignKey(Users,verbose_name='User Id', on_delete=models.CASCADE)
    com = models.ForeignKey(Committee, on_delete=models.CASCADE,verbose_name='Committee Name')
    mem_status = models.CharField( max_length=20,choices=MEMBER_STATUS, verbose_name='Member Status')
    mem_note = models.TextField(null=True, blank=True)
    mem_order = models.IntegerField(default=0)

所以 ids 中的每个 id 在成员模型中都有一个可用的对象,我想要的是像这样更新每个对象的 mem_order。 假设 ids 中的 111 在第二个索引处。 我想将 mem id 设置为 111 以在 mem_order 中设置 2。 我正在从 Member table 中获取所有需要的成员,现在我不知道如何遍历这些 ID 并将它们与 Member 模型中每个成员的 ID 相匹配。

这可能不是很有效,但我认为它会起作用。

for index, id in enumerate(ids, start=1):
    member = Member.objects.get(pk=id)
    member.mem_order = index
    member.save()

使用 python 的 enumerate 函数,您可以遍历 ids 列表的索引和值,然后获取该列表中具有 id 值的成员。然后设置mem_order为索引,最后保存。枚举有 start=1 所以列表中的第一项 '112' 的索引为 1,值为 '112'。