我是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()
有人可以帮我实现它吗?
答案 0 :(得分:1)
您正在尝试创建Author
,但不提供字段的任何数据。如果您已经成功创建了一个Author
并为必填email
字段添加了空白值,那么您尝试创建的下一个Author
将会有一个空白的email
字段,这就是导致非唯一错误的原因。这样做创建一个Author
:
Author.objects.create(name='Author Name', email='authoremail@domain.com')