无法在views.py#python#django中导入模型
Django-Python无法在views.py#python#django中导入模型,python,django,django-models,django-views,Python,Django,Django Models,Django Views,Django-Python 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', {'
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
apps.py
设置.py
url.py
您的
ForeignKey
的删除设置错误True
不是有效选项。请参阅以设置有效选项。如果要在删除外键时删除,请使用models.CASCADE
另外,您安装的应用程序是posts
。在您的URL
中,您正在从src.posts.views导入。试着摆脱src.
它应该可以解决你的问题。我已经通过代码美化中的标签移除空格来解决了它,并且它可以工作了你添加了应用程序名吗(这里是'posts'
)在你的settings.py
文件中的INSTALLED_APPS
中?是的,我将其添加到settings.py,一切正常,但当我尝试在views.py中导入模型时,它会给我该错误。
这是在settings.py中安装的_APPS:`INSTALLED_APPS=['django.contrib.admin'、'django.contrib.auth'、'django.contrib.contenttypes'、'django.contrib.sessions'、'django.contrib.messages'、'django.contrib.staticfiles'、'posts']`@WillemVanOnsemis yourviews.py
在同一个目录中?尝试从posts.models import Post我尝试过,但没有改变@PankajSharmaI仍然有相同的错误消息:“已安装的应用程序”。%(模块,名称)运行时错误:模型类src.posts.models.Author没有声明显式的app_标签,并且不在已安装的app_应用程序中。是否运行迁移?是的,我删除了所有迁移文件并执行python manage.py makemigrations
,然后执行python manage.py migrate
,但添加时仍然存在相同的问题ode>from.models导入Post
到views.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
from django.apps import AppConfig
class PostsConfig(AppConfig):
name = 'posts'
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'
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)