Модель не объявляет явную метку app_label в модели Django - PullRequest
1 голос
/ 30 апреля 2020

У меня есть базовое c Django приложение, которое я пытаюсь создать и протестировать модель с помощью интерпретатора Python. Я полагаю, что с моим файлом models.py что-то не так, но я не уверен, что, я бегу через учебник с сайта Django и пытаюсь построить свое приложение в соответствии с этим.

Запуск миграции прошел нормально, но при запуске:

from news.models import Author, Article, Source

Я получаю эту ошибку:

Traceback (most recent call last):
  File "/usr/lib/python3.6/code.py", line 91, in runcode
    exec(code, self.locals)
  File "<input>", line 1, in <module>
  File "/snap/pycharm-professional/196/plugins/python/helpers/pydev/_pydev_bundle/pydev_import_hook.py", line 21, in do_import
    module = self._system_import(name, *args, **kwargs)
  File "/home/etherk1ll/Development/python_projects/NewSite/news/models.py", line 6, in <module>
    class Author(models.Model):
  File "/usr/local/lib/python3.6/dist-packages/django/db/models/base.py", line 115, in __new__
    "INSTALLED_APPS." % (module, name)
RuntimeError: Model class news.models.Author doesn't declare an explicit app_label and isn't in an application in INSTALLED_APPS.

Модель находится в моем приложении news как и у моего установленного INSTALLED_APPS есть 'news.apps.NewsConfig', присутствующий в settings.py.

INSTALLED_APPS = [
    'news.apps.NewsConfig',
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
]


news/model.py


# -*- coding: utf-8 -*-
from __future__ import unicode_literals
from django.db import models


class Author(models.Model):
    name = models.CharField(max_length=50)


class Article(models.Model):
    authors = models.ManyToManyField(Author)
    #
    title = models.CharField(max_length=200)
    description = models.CharField(max_length=200)
    url = models.CharField(max_length=200)
    urlToImage = models.CharField(max_length=200)
    publishedAt = models.DateTimeField(max_length=100)
    content = models.CharField(max_length=5000)


class Source(models.Model):
    articles = models.ManyToManyField(Article)
    #
    source_id = models.CharField(max_length=20)
    name = models.CharField(max_length=50)

Что мне нужно отредактировать или добавить, чтобы это работало?

1 Ответ

0 голосов
/ 30 апреля 2020

Ваше установленное приложение должно содержать имя вашего приложения

INSTALLED_APPS = [
    'news.apps.NewsConfig',
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'news',

]

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...