Django 我有一个错误:'';TemplateDoesnotexister at/seller2/'';当我打开页面时

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

我一直在努力消除这个错误:

''TemplateDoesnotexistat/seller2/''的模板

将图像添加到数据库时。我已经创建了URL(seller2),它从views.py调用方法seller2。在这个方法中,我采用form=ProductForm并返回HTML文件。ProductForm已从forms.py导入,它为产品及其详细信息创建了一个表单

        <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',
            ],
        },
    },
]