Django Custom Management:编写命令填充数据时遇到麻烦

时间:2019-07-07 18:06:24

标签: django django-orm

我是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()

有人可以帮我实现它吗?

1 个答案:

答案 0 :(得分:1)

您正在尝试创建Author,但不提供字段的任何数据。如果您已经成功创建了一个Author并为必填email字段添加了空白值,那么您尝试创建的下一个Author将会有一个空白的email字段,这就是导致非唯一错误的原因。这样做创建一个Author

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