Django Custom Management:编写命令来填充数据时遇到问题

Django Custom Management: trouble in writing command to populate data

我是 django 管理命令的新手!我正在尝试编写一个命令来填充作者...

我的models.py是:

from django.db import models

class Author(models.Model):
    name = models.CharField(max_length=50)
    email = models.EmailField(unique=True, blank=False, null=False)

class Book(models.Model):
    book_name = models.CharField(max_length=10)
    summery =  models.TextField()
    author = models.ForeignKey(Author, on_delete=models.CASCADE)

我尝试编写命令但失败了..

下面是我的blog/management/commands/populate_author.py

from django.core.management.base import BaseCommand, CommandError
from blog.models import Author, Book

class Command(BaseCommand):
    help = 'Populate author'


    def handle(self, *args, **options):
        Author.objects.create()
        Author.save()

谁能帮我实现它?

您正在尝试创建一个 Author 但没有为字段提供任何数据。如果您成功地创建了一个 Author 且所需 email 字段的值为空,那么您尝试创建的下一个 Author 将有一个空白 email 字段并且这就是导致 non-unique 错误的原因。这样做是为了创建一个 Author:

Author.objects.create(name='Author Name', email='authoremail@domain.com')