保存时查询集记录不会获取 id 吗?

发布于 2024-10-20 08:17:11 字数 481 浏览 2 评论 0原文

在 Rails 中以及在 symfony 和 Doctrine 中,您可以保存一条记录,然后您将获得该记录的 id。例如:

b = Bank.new
b.save
#b.id now has a value

但在 Django 中,这显然不是它的工作方式:

>>> b = Bank()
>>> b.name = "Fred's Bank"
>>> b.identifier = "fred"
>>> b.save()
>>> b.id
>>> b.id.__class__
<type 'NoneType'>
>>>

如您所见,b.id 的计算结果为空。如果我想要的话,我必须返回并选择 id 吗?这将是一件很痛苦的事情,特别是对于有很多列的表。

In Rails, and in symfony with Doctrine, you can save a record and then you'll have the record's id. For example:

b = Bank.new
b.save
#b.id now has a value

But in Django that's apparently not how it works:

>>> b = Bank()
>>> b.name = "Fred's Bank"
>>> b.identifier = "fred"
>>> b.save()
>>> b.id
>>> b.id.__class__
<type 'NoneType'>
>>>

As you can see, b.id evaluates to nothing. Do I have to go back and select the id if I want it? That would be a pain in the ass, especially for tables that have a lot of columns.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

无可置疑 2024-10-27 08:17:11

这就是它在 Django 中的工作原理。假设 Bank 是一个 Django 模型,它确实在保存时获得一个 ID,并且当前实例反映了这一点。我无法想象你做了什么来打破这一点。您需要发布银行模型的代码。

That is how it works in Django. Assuming that Bank is a Django model, it does get an ID on save, and the current instance reflects that. I can't imagine what you have done to break that. You'll need to post the code of the Bank model.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文