gpt4 book ai didi

python - Django 完整性错误 _id 可能不为空,外键 id 分配

转载 作者:行者123 更新时间:2023-12-04 20:07:20 25 4
gpt4 key购买 nike

我在理解 Django (v1.6.5) 在保存时将 id 分配给不同对象的方式时遇到问题。以最小的例子为例:

#models.py

class Book(models.Model):
title = models.CharField(max_length=10)

class Page(models.Model):
number = models.SmallIntegerField()
book = models.ForeignKey(Book)

以下 View 在保存 my_page 时抛出“IntegrityError,book_id may not be NULL”,但是我倾向于说 book_id 确实存在,因为在那个阶段已经为这本书调用了 save() 。
#view.py

my_book = Book(title="My book")

#solution1 : having my_book.save() here

my_page = Page(number = 1, book = my_book)
my_book.save()
print("book id",my_page.book.id) #book.id does exist at that point!

#solution2: my_page.book = my_book

my_page.save() #throws the IntegrityError exception

有一些简单的解决方案可以使上述代码正常工作,但我想知道第一种方法有什么问题。我是不是遗漏了什么,还是 Django 处理外键的方式存在故障/限制?

最佳答案

您应该在设置之前保存书籍my_page.book = book .

您遇到的行为由 ticket 10811 描述.

关于python - Django 完整性错误 _id 可能不为空,外键 id 分配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23940651/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com