@Enter_a_nickname

Почему Django выдает ошибку TypeError: Abstract models cannot be instantiated?

У меня есть проект на django 4.0.1 в котором я использую бд mondodb. Для коннекта с базой я использую движок "djOngo". Соединение с базой работает корректно.

В моем проекте мне необходимо создать модели вложенные в другие модели в models.py Я обратился к официальной документации движка "djOngo" и попытался реализовать пример который потенциально закрывает мою потребность, вот он:

from djongo import models

class Blog(models.Model):
    name = models.CharField(max_length=100)
    tagline = models.TextField()

    class Meta:
        abstract = True

class MetaData(models.Model):
    pub_date = models.DateField()
    mod_date = models.DateField()
    n_pingbacks = models.IntegerField()
    rating = models.IntegerField()

    class Meta:
        abstract = True

class Author(models.Model):
    name = models.CharField(max_length=200)
    email = models.EmailField()

    class Meta:
        abstract = True
        
    def __str__(self):
        return self.name

class Entry(models.Model):
    blog = models.ArrayField(
        model_container=Blog,
    )
    meta_data = models.ArrayField(
        model_container=MetaData,
    )

    headline = models.CharField(max_length=255)
    body_text = models.TextField()

    authors = models.ArrayField(
        model_container=Author,
    )
    n_comments = models.IntegerField()

    def __str__(self):
        return self.headline

    class Meta:
    verbose_name = 'Entry'
    verbose_name_plural = 'Entry'


После этого я зарегистрировал класс "Entry" в файле admin.py:

from django.contrib import admin
from .models import Entry

admin.site.register(Entry)


И попробовал заполнить данные через админку. Но при переходе на страницу заполнения я получаю следующую ошибку: TypeError: Abstract models cannot be instantiated.

Как исправить данную ошибку?
  • Вопрос задан
  • 227 просмотров
Решения вопроса 1
AlexNest
@AlexNest
Работаю с Python/Django
Ну, у вас же в тексте ошибки все написано - нельзя вызвать экземпляр абстрактной модели. А автор - именно что абстрактная.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы