Django 我有一个错误:'';TemplateDoesnotexister at/seller2/'';当我打开页面时
我一直在努力消除这个错误: ''TemplateDoesnotexistat/seller2/''的模板 将图像添加到数据库时。我已经创建了URL(seller2),它从views.py调用方法seller2。在这个方法中,我采用form=ProductForm并返回HTML文件。ProductForm已从forms.py导入,它为产品及其详细信息创建了一个表单Django 我有一个错误:'';TemplateDoesnotexister at/seller2/'';当我打开页面时,django,django-models,django-forms,django-views,django-templates,Django,Django Models,Django Forms,Django Views,Django Templates,我一直在努力消除这个错误: ''TemplateDoesnotexistat/seller2/''的模板 将图像添加到数据库时。我已经创建了URL(seller2),它从views.py调用方法seller2。在这个方法中,我采用form=ProductForm并返回HTML文件。ProductForm已从forms.py导入,它为产品及其详细信息创建了一个表单 <urls.py> `from django.conf.urls import url
<urls.py>
`from django.conf.urls import url
from . import views
from . import views as user_views
from django.contrib.auth import views as auth_views
from django.conf import settings
from django.conf.urls.static import static
urlpatterns = [
url(r'^$',views.Front,name='Front'),
url(r'^Register/$',user_views.Register,name='Register'),
url(r'^signup_form_submitted/$',views.signup_form_submitted, name='signup_form_submitted'),
url(r'^Login$',auth_views.LoginView.as_view(template_name='netauction/LogIn.html'), name='Login'),
url(r'^Logout/',auth_views.LogoutView.as_view(template_name='netauction/LogOut.html'), name='Logout'),
url(r'^Home/',views.Home, name='Home'),
url(r'^Automobiles/',views.Automobiles, name='Automobiles'),
url(r'^Furnitures/',views.Furnitures, name='Furnitures'),
url(r'^Musical_Instruments/',views.Musical_Instruments, name='Musical_Instruments'),
url(r'^Home&Garden/',views.Home_Garden, name='Home_Garden'),
url(r'^Antiques/',views.Antiques, name='Antiques'),
url(r'^Fashion/',views.Fashion, name='Fashion'),
url(r'^Sports/',views.Sports, name='Sports'),
url(r'^Collection&Arts/',views.Collection_Arts, name='Collection_Arts'),
url(r'^Seller/',views.Seller_Form,name='Seller_Form'),
url(r'Seller/form_submitted/',views.seller_form_submitted, name='seller_form_submitted'),
url(r'^seller2/',views.Seller2, name='Seller2')
]
if settings.DEBUG:urlpatterns += static(settings.MEDIA_URL,document_root=settings.MEDIA_ROOT)`
<views.py>
`from django.shortcuts import render, redirect
from .models import Users
from pip._internal import req
from django.core.files.storage import FileSystemStorage
from .forms import ProductForm
def Seller2(request):
form = ProductForm()
return render(request,'seller2.html',{
'form': form})`
<models.py>
`from django.db import models
class Products_Details(models.Model):
seller = models.ForeignKey(Sellers_Details, on_delete=models.CASCADE)
product_name = models.CharField(max_length = 100)
product_category = models.CharField(max_length = 100)
product_features = models.CharField(max_length = 400)
product_images = models.FileField(upload_to='Product_Images')
product_starting_price = models.DecimalField(max_digits=10, decimal_places=2)
product_current_price = models.DecimalField(max_digits=10, decimal_places=2)
def __str__(self):
return self.product_name`
<forms.py>
`from django import forms
from .models import Products_Details
class ProductForm(forms.ModelForm):
class Meta:
model = Products_Details
fields=('seller','product_name','product_category','product_features','product_images','product_starting_price','product_current_price')`
<settings.py>
`TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': ['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',
],
},
},
]`
<seller2.html>
`<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
{% load static %}
<link type='text/css' rel='stylesheet' href="{% static '/css/bootstrap.min.css' %}">
<link type='text/css' rel='stylesheet' href="{% static '/css/bootstrap.all.min.css' %}">
<link type='text/css' rel='stylesheet' href="{% static '/css/bootstrap.styles6.css' %}">
<title>ONLINE AUCTION | Sellers Product Details</title>
</head>
<body>
<form>
{{ form }}
</form>
</body>
</html>`
<ERROR MSG>
`TemplateDoesNotExist at /seller2/
seller2.html`
<DIRECTORY PATH>
`从django.conf.url导入url
从…起导入视图
从…起将视图导入为用户视图
从django.contrib.auth导入视图作为auth_视图
从django.conf导入设置
从django.conf.url.static导入静态
URL模式=[
url(r'^$',views.Front,name='Front'),
url(r“^Register/$”,用户_views.Register,name='Register'),
url(r“^signup\u form\u submitted/$”,views.signup\u form\u submitted,name='signup\u form\u submitted'),
url(r“^Login$”,auth_views.LoginView.as_view(template_name='netauction/Login.html'),name='Login'),
url(r“^Logout/”,auth_views.LogoutView.as_view(template_name='netauction/Logout.html'),name='Logout'),
url(r“^Home/”,views.Home,name='Home'),
url(r“^Automobiles/”,views.Automobiles,name='Automobiles'),
url(r“^Furnitures/”,views.Furnitures,name='Furnitures'),
url(r“^music\u Instruments/”,views.music\u Instruments,name='music\u Instruments'),
url(r“^Home&Garden/”,views.Home\u Garden,name='Home\u Garden'),
url(r“^Antiques/”,views.Antiques,name='Antiques'),
url(r“^Fashion/”,views.Fashion,name='Fashion'),
url(r“^Sports/”,views.Sports,name='Sports'),
url(r“^Collection&Arts/”,views.Collection\u Arts,name='Collection\u Arts'),
url(r'^Seller/',views.Seller\u Form,name='Seller\u Form'),
url(r'Seller/form\u submitted/',views.Seller\u form\u submitted,name='Seller\u form\u submitted'),
url(r'^seller2/',views.seller2,name='seller2')
]
if settings.DEBUG:urlpatterns+=静态(settings.MEDIA\u URL,document\u root=settings.MEDIA\u root)`
`从django.shortcuts导入渲染,重定向
从。模型导入用户
来自pip.\u内部导入请求
从django.core.files.storage导入文件系统存储
from.forms导入ProductForm
def Seller2(请求):
form=ProductForm()
返回render(请求'seller2.html'{
'form':form})`
`从django.db导入模型
类别产品详细信息(型号.型号):
卖方=模型.ForeignKey(卖方详细信息,在删除=模型.CASCADE上)
product_name=models.CharField(最大长度=100)
产品类别=型号.CharField(最大长度=100)
product_features=models.CharField(最大长度=400)
product\u images=models.FileField(上传到class='product\u images')
产品起始价格=型号。小数点域(最大位数=10,小数点位=2)
产品当前价格=型号。小数点域(最大位数=10,小数点位=2)
定义(自我):
返回self.product\u名称`
`来自django导入表单
from.models导入产品\u详细信息
类ProductForm(forms.ModelForm):
类元:
型号=产品\详细信息
字段=(‘卖方’、‘产品名称’、‘产品类别’、‘产品功能’、‘产品图像’、‘产品起始价格’、‘产品当前价格’)`
`模板=[
{
'BACKEND':'django.template.backends.django.DjangoTemplates',
'DIRS':['templates'],
“应用程序目录”:正确,
“选项”:{
“上下文处理器”:[
“django.template.context_processors.debug”,
'django.template.context_processors.request',
'django.contrib.auth.context_processors.auth',
'django.contrib.messages.context_processors.messages',
],
},
},
]`
`
{%load static%}
在线拍卖|卖家产品详细信息
{{form}}
`
`TemplateDoesNotExister at/seller2/
seller2.html`
请参见目录路径的屏幕截图。我是新手,直接上传图片时出错
我首先要尝试的是将“模板”目录向上移动到“学期项目”文件夹中,与settings.py处于同一级别,甚至与manage.py处于同一级别。因此,您的文件夹结构应该如下所示:
semester_project >
NetAuction (folder)
templates (folder)
static (folder)
asgi.py
settings.py
urls.py
...
或
在settings.py中,您还可以尝试使模板DIRS
设置更通用,如下所示:
import os
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
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',
],
},
},
]
你的目录结构看起来和我所能说的有点混淆(从你发布的图片中很难破译)。确保使用Django命令启动项目和应用程序,如Django admin startproject myprojectname
和python manage.py startapp myappname
此外,请查看Django文档中的文件夹结构,并确保在设置项目时遵循以下步骤:
我看到人们在Django中报告的关于“Template Not Found”错误的90%的问题涉及templates文件夹处于错误的级别,或者根据他们的settings.py
文件,它不在应该位于的位置
您的“静态”目录似乎与设置中的“媒体”目录相同
import os
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
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',
],
},
},
]