Django Custom Management: проблема в написании команды для заполнения данных - PullRequest
0 голосов
/ 07 июля 2019

Я новичок в командах управления 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 голосов
/ 07 июля 2019

Вы пытаетесь создать Author без указания каких-либо данных для полей. Если вам удалось создать одно Author с пустым значением для обязательного поля email, то следующее Author, которое вы попытаетесь создать, будет иметь пустое поле email, и это является причиной неуникального ошибка. Сделайте это, чтобы создать Author:

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