AttributeError: 模块“courses.views”没有属性“search”

如何解决AttributeError: 模块“courses.views”没有属性“search”

我是一名初级 Django 学习者,在一个来自 Youtube 教程的教育网站上工作。我的问题是我不知道我的错误在哪里。

原始错误

AttributeError: 模块“courses.views”没有属性“search”

错误 2(当我在 urls.py 中用 views.search 注释该行时出现)

在模板中 C:\Users\Vusala\Desktop\smartedu_project\smartedu_original\templates\partials_base.html,第 0 行错误

未找到“搜索”的反向。 “搜索”不是有效的视图函数或模式名称

这里是项目的一些代码

urls.py

from django.urls import path
from . import views


urlpatterns = [
    path('',views.course_list,name="courses"),path('<slug:category_slug>/<int:course_id>',views.course_detail,name="course_detail"),path('categories/<slug:category_slug>',name="courses_by_category"),path('tags/<slug:tag_slug>',name="courses_by_tag"),#path('search/',views.search,name="search"),]

views.py

from django.http import HttpResponse
from django.shortcuts import render
from . models import Course,Category,Tag

def course_list(request):
    courses = Course.objects.all().order_by('-date')
    categories = Category.objects.all()
    tags = Tag.objects.all()
    
    
    context= {
        'courses': courses,'categories': categories,'tags': tags
    }
    return render(request,'courses.html',context)

def course_detail(request,category_slug,course_id):
    course = Course.objects.get(category__slug=category_slug,id=course_id)
   

    context = {
       
        'course' : course
    }

    return render(request,'course.html',context)

_base.html

{% load static %}

<!DOCTYPE html>
<html lang="en">
    ...
    <title>SmartEDU - Education Responsive HTML5 Template</title>  
    <link rel="shortcut icon" href="{% static 'images/favicon.ico' %}" type="image/x-icon" />
    <link rel="apple-touch-icon" href="{% static 'images/apple-touch-icon.png' %}">
    <link rel="stylesheet" href="{% static 'css/bootstrap.min.css' %}">
    <link rel="stylesheet" href="{% static 'style.css' %}">
    ...
</head>
<body class="host_version"> 

    <div id="preloader">
        <div class="loader-container">
            <div class="progress-br float shadow">
                <div class="progress__item"></div>
            </div>
        </div>
    </div>
    
    {% include 'partials/_navbar.html' %}

    {% block content %}
    {% endblock %}

    {% include 'partials/_footer.html' %}

_navbar.html

{% load static %} 
<header class="top-navbar">
    <nav class="navbar navbar-expand-lg navbar-light bg-light">
        <div class="container-fluid">
            <a class="navbar-brand" href="{% url 'index' %}">
        <img src="{% static 'images/logo.png' %}" alt="" />
            </a>
            <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbars-host" aria-controls="navbars-rs-food" aria-expanded="false" aria-label="Toggle navigation">
                <span class="icon-bar"></span>
                <span class="icon-bar"></span>
                <span class="icon-bar"></span>
            </button>
            <div class="collapse navbar-collapse" id="navbars-host">
                <ul class="navbar-nav ml-auto">
                    <li class="nav-item {% if '/' == request.path %} active {% endif %} "><a class="nav-link" href="{% url 'index' %}">Home</a></li>
                    <li class="nav-item"{% if 'about' in request.path %} active {% endif %} "><a class="nav-link" href="{% url 'about' %}">About Us</a></li>
                    <li class="nav-item"{% if 'courses' in request.path %} active {% endif %} "><a class="nav-link" href="{% url 'courses' %}">Courses</a></li>
                    <li class="nav-item"{% if 'teachers' in request.path %} active {% endif %} "><a class="nav-link" href="{% url 'teachers' %}">Teachers</a></li>
                    <li class="nav-item"><a class="nav-link" href="contact.html">Contact</a></li>
                </ul>
                <ul class="nav navbar-nav navbar-right">
                    <li><a class="hover-btn-new log orange" href="#" data-toggle="modal" data-target="#login"><span>Book Now</span></a></li>
                </ul>
            </div>
        </div>
    </nav>
</header>
<!-- End header -->

_footer.html

{% load static %}
<footer class="footer">
    <div class="container">
        <div class="row">
            <div class="col-lg-4 col-md-4 col-xs-12">
                <div class="widget clearfix">
                    <div class="widget-title">
                        <h3>About US</h3>
                    </div>
                    <p> Integer rutrum ligula eu dignissim laoreet. Pellentesque venenatis nibh sed tellus faucibus bibendum. Sed fermentum est vitae rhoncus molestie. Cum sociis natoque penatibus et magnis dis montes.</p>   
                    <div class="footer-right">
                        <ul class="footer-links-soi">
                            <li><a href="#"><i class="fa fa-facebook"></i></a></li>
                            <li><a href="#"><i class="fa fa-github"></i></a></li>
                            <li><a href="#"><i class="fa fa-twitter"></i></a></li>
                            <li><a href="#"><i class="fa fa-dribbble"></i></a></li>
                            <li><a href="#"><i class="fa fa-pinterest"></i></a></li>
                        </ul><!-- end links -->
                    </div>                      
                </div><!-- end clearfix -->
            </div><!-- end col -->

            <div class="col-lg-4 col-md-4 col-xs-12">
                <div class="widget clearfix">
                    <div class="widget-title">
                        <h3>information Link</h3>
                    </div>
                    <ul class="footer-links">
                        <li><a href="#">Home</a></li>
                        <li><a href="#">Blog</a></li>
                        <li><a href="#">Pricing</a></li>
                        <li><a href="#">About</a></li>
                        <li><a href="#">Contact</a></li>
                    </ul><!-- end links -->
                </div><!-- end clearfix -->
            </div><!-- end col -->
            
            <div class="col-lg-4 col-md-4 col-xs-12">
                <div class="widget clearfix">
                    <div class="widget-title">
                        <h3>Contact Details</h3>
                    </div>

                    <ul class="footer-links">
                        <li><a href="mailto:#">info@yoursite.com</a></li>
                        <li><a href="#">www.yoursite.com</a></li>
                        <li>PO Box 16122 Collins Street West Victoria 8007 Australia</li>
                        <li>+61 3 8376 6284</li>
                    </ul><!-- end links -->
                </div><!-- end clearfix -->
            </div><!-- end col -->
            
        </div><!-- end row -->
    </div><!-- end container -->
</footer><!-- end footer -->

<div class="copyrights">
    <div class="container">
        <div class="footer-distributed">
            <div class="footer-center">                   
                <p class="footer-company-name">All Rights Reserved. &copy; 2018 <a href="#">SmartEDU</a> Design By : <a href="https://html.design/">html design</a></p>
            </div>
        </div>
    </div><!-- end container -->
</div><!-- end copyrights -->

<a href="#" id="scroll-to-top" class="dmtop global-radius"><i class="fa fa-angle-up"></i></a>

<!-- ALL JS FILES -->
<script src="{% static 'js/all.js' %}"></script>
<!-- ALL PLUGINS -->
<script src="{% static 'js/custom.js' %}"></script>
<script src="{% static 'js/timeline.min.js' %}"></script>
<script>
    timeline(document.querySelectorAll('.timeline'),{
        forceVerticalMode: 700,mode: 'horizontal',verticalStartPosition: 'left',visibleItems: 4
    });
</script>
<script>
    $(window).on('load',function() {
        $('#logreg').modal('show');
    });
</script>
</body>
</html>

courses.html

{% extends 'partials/_base.html' %}
{% load static %}

{% block content %}
    
    <div class="all-title-Box">
        <div class="container text-center">
            <h1>Courses</span></h1>
        </div>
    </div>
    
    <div id="overviews" class="section wb">
        <div class="container">
            <div class="row"> 
                <div class="col-lg-9 blog-post-single">
                    
                    <div class="row"> 
                        {% for course in courses %}
                        <div class="col-lg-6 col-md-6 col-12 mb-4">
                            <div class="course-item">
                                <div class="image-blog">
                                    <img src="{{course.image.url}}" alt="" class="img-fluid">
                                </div>
                                <div class="course-br">
                                    <div class="course-title">
                                        <h2><a href="{% url  'course_detail' course.category.slug course.id %}" title="">{{course.name}}</a></h2>
                                    </div>
                                    <div class="course-desc">
                                        <p>{{course.description | truncatechars:140}}</p>
                                    </div>
                                </div>
                                <div class="course-Meta-bot">
                                    <ul>
                                        <li><i class="fa fa-calendar" aria-hidden="true"></i> {{course.date|date:"d M Y"}}</li>
                                        <li><i class="fa fa-book" aria-hidden="true"></i> {{course.teacher}}</li>
                                    </ul>
                                </div>
                            </div>
                        </div><!-- end col -->
                        {% endfor %}
                    </div><!-- end row -->
                
                    
                </div><!-- end col -->
                <div class="col-lg-3 col-12 right-single">
                    <div class="widget-search">
                        <div class="site-search-area">
                            <form method="get" id="site-searchform" action="{% url 'search' %}">
                                <div>
                                    <input class="input-text form-control" name="search" placeholder="Search keywords..." type="text">
                                    <input id="searchsubmit" value="Search" type="submit">
                                </div>
                            </form>
                        </div>
                    </div>
                    <div class="widget-categories">
                        <h3 class="widget-title">Categories</h3>
                        <ul>
                            {% for category in categories %}
                                <li><a href="{% url 'courses_by_category' category.slug %}">{{category.name}}</a></li>
                            {% endfor %}
                        </ul>
                    </div>
                    <div class="widget-tags">
                        <h3 class="widget-title">Search Tags</h3>
                        <ul class="tags">
                            {% for tag in tags %}
                                <li><a href="{% url 'courses_by_tag' tag.slug %}">{% if tag.slug in request.path %} <b>{{tag.name}}</b>{% else %}{{tag.name}}{% endif %}</a></li>
                            {% endfor %}
                        </ul>
                    </div>
                </div>
            </div><!-- end row -->
        </div><!-- end container -->
    </div><!-- end section -->

    {% endblock %}

我希望你能帮助我,让我摆脱这种绝望。

解决方法

错误很明显,它表示在您的视图中没有称为搜索的函数

请考虑添加代码和错误,而不是它们的 img ..


第二个错误发生在这里

<form method="get" id="site-searchform" action="{% url 'search' %}">
    <div>
    <input class="input-text form-control" name="search" placeholder="Search keywords..." type="text">
    <input id="searchsubmit" value="Search" type="submit">
   </div>
</form>
                   

在此表单中的 course.html 表单操作设置为 {% url 'seaech '%} 只需删除此表单,一切都会正常

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?
Java在半透明框架/面板/组件上重新绘画。
Java“ Class.forName()”和“ Class.forName()。newInstance()”之间有什么区别?
在此环境中不提供编译器。也许是在JRE而不是JDK上运行?
Java用相同的方法在一个类中实现两个接口。哪种接口方法被覆盖?
Java 什么是Runtime.getRuntime()。totalMemory()和freeMemory()?
java.library.path中的java.lang.UnsatisfiedLinkError否*****。dll
JavaFX“位置是必需的。” 即使在同一包装中
Java 导入两个具有相同名称的类。怎么处理?
Java 是否应该在HttpServletResponse.getOutputStream()/。getWriter()上调用.close()?
Java RegEx元字符(。)和普通点?