RuntimeError: класс модели products.models.Product не объявляет явную метку app_label и не находится в приложении в INSTALLED_APPS - PullRequest
0 голосов
/ 16 апреля 2020

Ма c ОС Python 3.7.3 Django 2.0.7

Я пытаюсь импортировать в I python, это происходит:

(trydjango) (base) MacBook-Pro:src qizhilin$ python manage.py shell
Python 3.7.3 (v3.7.3:ef4ec6ed12, Mar 25 2019, 16:52:21) 
[Clang 6.0 (clang-600.0.57)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
(InteractiveConsole)
>>> from products.models import Product
Traceback (most recent call last):
  File "<console>", line 1, in <module>
  File "/Users/qizhilin/Dev/trydjango/src/products/models.py", line 4, in <module>
    class Product(models.Model):
  File "/Users/qizhilin/Dev/trydjango/lib/python3.7/site-packages/django/db/models/base.py", line 108, in __new__
    "INSTALLED_APPS." % (module, name)
RuntimeError: Model class products.models.Product doesn't declare an explicit app_label and isn't in an application in INSTALLED_APPS.

макет каталога исходного кода:

  • bin
  • lib

  • sr c

-страницы

-продукты

--_ pycache_

- миграции

- / * _ init_.py

- / * admin.py

- / * apps.py

- / * models.py

- / * tests.py

- / * views.py

-шаблонов

-try django

--_ pycache_

- активировать

- / * _ init_.py

- / * settings.py

- / * urls.py

- / * wsgi .py

- / * manage.py

  • pyvenv.cfg

продукты код:

- / * _ init_.py: пусто

- / * admin.py:

from django.contrib import admin

# Register your models here.
from .models import Product


admin.site.register(Product)

- / * apps.py:

from django.apps import AppConfig


class ProductsConfig(AppConfig):
    name = 'products'

- / * models.py:

from django.db import models

# Create your models here.
class Product(models.Model):
    title       = models.CharField(max_length = 120) #max_length = required
    description = models.TextField(blank=True,null=True)
    price       = models.DecimalField(decimal_places=2,max_digits=1000)
    summary     = models.TextField(blank=False,null=False)
    featured    = models.BooleanField() # null=True, default=True

- / * tests.py:

from django.test import TestCase

# Create your tests here.

- / * views.py * 108 0 *

from django.shortcuts import render

# Create your views here.

try django code:

- / * _ init_.py:it's пусто

- / * settings.py :

"""
Django settings for trydjango project.

Generated by 'django-admin startproject' using Django 2.0.7.

For more information on this file, see
https://docs.djangoproject.com/en/2.0/topics/settings/

For the full list of settings and their values, see
https://docs.djangoproject.com/en/2.0/ref/settings/
"""

import os

# Build paths inside the project like this: os.path.join(BASE_DIR, ...)
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))


# Quick-start development settings - unsuitable for production
# See https://docs.djangoproject.com/en/2.0/howto/deployment/checklist/

# SECURITY WARNING: keep the secret key used in production secret!
SECRET_KEY = 'h3$$ig%@ks4_!)y00&gfuz@214-%h+qxb&8_gvydulf=_@dzkz'

# SECURITY WARNING: don't run with debug turned on in production!
DEBUG = True

ALLOWED_HOSTS = []


# Application definition

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    # third party

    # own
    'pages',
    'products.apps.ProductsConfig',
]





MIDDLEWARE = [
    'django.middleware.security.SecurityMiddleware',
    'django.contrib.sessions.middleware.SessionMiddleware',
    'django.middleware.common.CommonMiddleware',
    'django.middleware.csrf.CsrfViewMiddleware',
    'django.contrib.auth.middleware.AuthenticationMiddleware',
    'django.contrib.messages.middleware.MessageMiddleware',
    'django.middleware.clickjacking.XFrameOptionsMiddleware',
]

ROOT_URLCONF = 'trydjango.urls'

TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        'DIRS': [os.path.join(BASE_DIR),"templates"],
        'APP_DIRS': True,
        'OPTIONS': {
            'context_processors': [
                'django.template.context_processors.debug',
                'django.template.context_processors.request',
                'django.contrib.auth.context_processors.auth',
                'django.contrib.messages.context_processors.messages',
            ],
        },
    },
]

WSGI_APPLICATION = 'trydjango.wsgi.application'


# Database
# https://docs.djangoproject.com/en/2.0/ref/settings/#databases

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.sqlite3',
        'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
    }
}


# Password validation
# https://docs.djangoproject.com/en/2.0/ref/settings/#auth-password-validators

AUTH_PASSWORD_VALIDATORS = [
    {
        'NAME': 'django.contrib.auth.password_validation.UserAttributeSimilarityValidator',
    },
    {
        'NAME': 'django.contrib.auth.password_validation.MinimumLengthValidator',
    },
    {
        'NAME': 'django.contrib.auth.password_validation.CommonPasswordValidator',
    },
    {
        'NAME': 'django.contrib.auth.password_validation.NumericPasswordValidator',
    },
]


# Internationalization
# https://docs.djangoproject.com/en/2.0/topics/i18n/

LANGUAGE_CODE = 'en-us'

TIME_ZONE = 'UTC'

USE_I18N = True

USE_L10N = True

USE_TZ = True



# Static files (CSS, JavaScript, Images)
# https://docs.djangoproject.com/en/2.0/howto/static-files/

STATIC_URL = '/static/'

- / * urls.py:

"""trydjango URL Configuration

The `urlpatterns` list routes URLs to views. For more information please see:
    https://docs.djangoproject.com/en/2.0/topics/http/urls/
Examples:
Function views
    1. Add an import:  from my_app import views
    2. Add a URL to urlpatterns:  path('', views.home, name='home')
Class-based views
    1. Add an import:  from other_app.views import Home
    2. Add a URL to urlpatterns:  path('', Home.as_view(), name='home')
Including another URLconf
    1. Import the include() function: from django.urls import include, path
    2. Add a URL to urlpatterns:  path('blog/', include('blog.urls'))
"""
from django.contrib import admin
from django.urls import path

from pages.views import home_view,about_view,contact_view

urlpatterns = [
    path('contact/', contact_view, name='contact'),
    path('about/', about_view, name='about'),
    path('', home_view, name='home'),
    path('home/', home_view),
    path('admin/', admin.site.urls),

]

- / * wsgi.py:

"""
WSGI config for trydjango project.

It exposes the WSGI callable as a module-level variable named ``application``.

For more information on this file, see
https://docs.djangoproject.com/en/2.0/howto/deployment/wsgi/
"""

import os

from django.core.wsgi import get_wsgi_application

os.environ.setdefault("DJANGO_SETTINGS_MODULE", "trydjango.settings")

application = get_wsgi_application()

- / * manage. py:

#!/usr/bin/env python
import os
import sys

if __name__ == "__main__":
    os.environ.setdefault("DJANGO_SETTINGS_MODULE", "trydjango.settings")
    try:
        from django.core.management import execute_from_command_line
    except ImportError as exc:
        raise ImportError(
            "Couldn't import Django. Are you sure it's installed and "
            "available on your PYTHONPATH environment variable? Did you "
            "forget to activate a virtual environment?"
        ) from exc
    execute_from_command_line(sys.argv)

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