首页 > 解决方案 > 一对多 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)

标签: djangodjango-models

解决方案


您将关系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)

例如,您可以创建Books 和Authors,例如:

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


推荐阅读