使用一对一和外键字段创建新的模型实例

2024-09-27 07:17:07 发布

您现在位置:Python中文网/ 问答频道 /正文

型号:

class BurrowedBook(models.Model):
    # Fields
    borrow_date = models.DateField()
    return_date = models.DateField()
    actual_return_date = models.DateField(null=True)

    # Relationship Fields
    book_copy = models.OneToOneField(BookCopy)
    burrowed_by = models.ForeignKey(Member)

保存新实例:

^{pr2}$

如何保存此模型的新实例?一对一字段和外键字段有问题。在

我得到了这个错误:

Cannot assign "<QuerySet []>": "BurrowedBook.book_copy" must be a 
"BookCopy" instance.

Tags: 实例fieldsdatemodelreturnmodelsclasscopy
2条回答

正如错误所说,您必须拥有一个BookCopy实例,并将该实例分配给您的book_copy。您必须先创建一个图书副本(需要检查您的图书副本模型),例如->;book\u copy=BookCopy.objects.create(). 关于保存实例,请检查以下细节:https://docs.djangoproject.com/en/1.11/ref/models/querysets/#create

出现此错误是因为您试图分配一个queryset Cannot assign "<QuerySet []>"来解决您的问题,您必须使用get,它返回单个对象而不是queryset

member = Member.objects.get(member_id=memberId)
book_copy = BookCopy.objects.get(book=book, copy_number=book_copy_id)

另一个选项是从查询集中获取第一个对象:

^{pr2}$

相关问题 更多 >

    热门问题