django - 一对多 django 添加作者到书
问题描述
我有一家书店,我想添加几个作者来添加一本新书。我该怎么做?我的代码只接受一个作者
class Authors(models.Model):
first_name = models.CharField(max_length=200)
last_name = models.CharField(max_length=200)
class Book(models.Model):
title = models.CharField(max_length=200)
topic = models.CharField(max_length=200)
author = models.ForeignKey(Authors, on_delete = models.DO_NOTHING)
解决方案
您将关系ManyToManyField
设为 [Django-doc],例如:
class Author(models.Model):
first_name = models.CharField(max_length=200)
last_name = models.CharField(max_length=200)
class Book(models.Model):
title = models.CharField(max_length=200)
topic = models.CharField(max_length=200)
authors = models.ManyToManyField(Author)
例如,您可以创建Book
s 和Author
s,例如:
sona = Author.objects.create(first_name='Sona', last_name='Charaipotra')
dhon = Author.objects.create(first_name='Dhonielle', last_name='Clayton')
book1 = Book.objects.create(title='Tiny Pretty Things', topic='dance')
book1.authors.add(sona, dhon)
注意:模型通常有一个单数名称,所以
Author
,而不是。Authors
推荐阅读
- freertos - 什么是最少延迟“收益”的电话?
- javascript - 基于对象响应Angular显示复选框
- python - Numpy 返回“TypeError:'float' 对象不能被解释为整数”
- reactjs - 为嵌套在状态中的值创建排序依据按钮
- css - 正确使用 css 变量
- python - 在 python3 中从 bash 执行 DNS 查询的最佳方法是什么?
- django - ValueError: save() 禁止以防止由于未保存的相关对象表单而导致数据丢失 - 使用表单 obj 作为 fk 创建模型
- angular - How can we use HTTP_INTERCEPTORS to call refresh token, whenever it gets expired
- python - 如何打印不带括号的元组?
- c - 为什么输出 -1.#IND00 会出现此浮点错误?