【问题标题】:django - get the id of just updated recorddjango - 获取刚刚更新记录的 id
【发布时间】:2011-07-16 20:18:12
【问题描述】:

在我的 Django 应用上,我正在做这样的更新:

r = Mycords.objects.select_related().filter(name=r_name).update(title=r_title, message_body=r_message)

我需要获取刚刚更新记录的 id,以便可以在代码的其他地方使用它。有什么想法吗?

【问题讨论】:

    标签: django django-models django-views


    【解决方案1】:

    哇哦。

    首先,如果这只是一条记录,您应该使用get 而不是filter

    其次,select_related 在里面做什么?

    第三,所有更新的记录都在r。因此,您可以从那里访问他们的 ID。

    【讨论】:

    • 我想我从某个地方复制了该代码,并没有考虑它是如何工作的,但它确实有效。我的错。例如,如果我有多个条件来搜索类似 update where "firstname= r_firstname" and "lastname = r_lastname" 在我进行更新之前我仍然可以使用“get”吗?
    • 只要您确定条件组合将导致返回单个记录 - 否则 Django 将引发 MultipleObjectsReturned 异常。
    • 我拿出我的 Django 书,看起来您可以使用“get”进行更新,也可以使用“update”(如果您想批量编辑多条记录)。我仍然想知道如何使用“update”而不是“get”来获取最后插入记录的 id。
    • 好的,我消除了 select_related 并使用“get”而不是“update”。然后我使用 r.id 来获取 id。像魅力一样工作。谢谢!
    猜你喜欢
    • 2011-07-31
    • 2011-09-09
    • 1970-01-01
    • 2017-07-04
    • 2011-06-17
    • 1970-01-01
    • 1970-01-01
    • 2011-02-17
    • 2018-05-14
    相关资源
    最近更新 更多