如何解决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. © 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 举报,一经查实,本站将立刻删除。