Невозможно импортировать модели в views.py #python #django - PullRequest
0 голосов
/ 29 октября 2018

Это происходит, когда я пытаюсь запустить сервер

Эта фотография описывает структуру проекта Джанго - Питон


views.py

Просто , когда я пытаюсь импортировать модель "Post", у меня появляется эта ошибка, и я не могу открыть ни одну страницу.
Если я не импортирую какую-либо модель в views.py, все выглядит хорошо ..
Не могли бы вы помочь мне решить эту проблему?

from .models import Post
def home_view(request):
    latest_posts = Post.objects.order_by('pub_date')[:3]
    return render(request, 'home.html', {'Latest': latest_posts})

models.py

from django.db import models

# Create your models here.


class Author(models.Model):
    name = models.CharField(max_length=120)
    brief_life = models.TextField(blank=True, null=True)
    Date_of_birth = models.DateField()

    def __str__(self):
        return self.name


class Type(models.Model):
    name = models.CharField(max_length=120, unique=True)
    description = models.TextField(blank=True, null=True)

    def __str__(self):
        return self.name


class Post(models.Model):
    title = models.CharField(max_length=120, unique=True)
    description = models.TextField(blank=True, null=True)
    price = models.DecimalField(decimal_places=2, max_digits=10000)
    pub_date = models.DateField()
    copy_num = models.IntegerField(default=1)
    for_buy = models.BooleanField(default=True)
    author = models.ForeignKey(Author, on_delete=True)
    p_type = models.ForeignKey(Type, on_delete=True)

    def __str__(self):
        return self.title

apps.py

from django.apps import AppConfig
class PostsConfig(AppConfig):
    name = 'posts'

settings.py

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'posts',
]



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 = 'project.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 = 'project.wsgi.application'

url.py

from django.conf import settings
from django.conf.urls.static import static
from django.contrib import admin
from django.urls import path

from src.posts.views import home_view, about_view, details_view, post_info_view

urlpatterns = [
    path('', home_view, name='home'),
    path('about/', about_view, name='about'),
    path('details/', details_view, name='details'),
    path('info/', post_info_view, name='info'),
    path('admin/', admin.site.urls),
] + static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)

1 Ответ

0 голосов
/ 30 октября 2018

Ваш ForeignKey on_delete настроен неправильно. True не является допустимым вариантом. Обратитесь к Ссылка на поле модели Поле ForeignKey , чтобы установить допустимый параметр. Если вы хотите удалить при удалении внешнего ключа, используйте models.CASCADE

Кроме того, ваше установленное приложение posts. В вашем urls вы import ing from src.posts.views. Попробуйте избавиться от src., и это должно решить вашу проблему.

...