【问题标题】:I am having a problem linking my HTML pages in Python Django web framework我在 Python Django Web 框架中链接我的 HTML 页面时遇到问题
【发布时间】:2020-08-31 00:14:02
【问题描述】:

我在运行 django 应用程序时遇到错误,我发现我的 url 配置和模板链接存在问题。

app/views.py

  from django.shortcuts import render
from django.views import generic
from .models import Post


class PostList(generic.ListView):
    queryset = Post.objects.filter(status=1).order_by('-created_on')
    template_name = 'blog/index.html'


class PostDetail(generic.DetailView):
    model = Post
    template_name = 'blog/post_detail.html'


def home(request):
    return render(request, 'blog/home.html')

def about(request):
    return render(request, 'blog/about.html')

def contact(request):
    return render(request, 'blog/contact1.html')

models.py

from django.db import models
from django.contrib.auth.models import User


STATUS = (
    (0,"Draft"),
    (1,"Publish")
)

class Post(models.Model):
    title = models.CharField(max_length=200, unique=True)
    slug = models.SlugField(max_length=200, unique=True)
    author = models.ForeignKey(User, on_delete= models.CASCADE,related_name='blog_posts')
    updated_on = models.DateTimeField(auto_now= True)
    content = models.TextField()
    created_on = models.DateTimeField(auto_now_add=True)
    status = models.IntegerField(choices=STATUS, default=0)

    class Meta:
        ordering = ['-created_on']

    def __str__(self):
        return self.title

项目/urls.py

from django.contrib import admin
from django.conf.urls import url, include
from blog import views


urlpatterns = [
    url(r'', views.home, name='home'),
    url(r'^admin/', admin.site.urls),
    url(r'^blog/', include('blog.urls')),
    
]

app/urls.py

  from django.conf.urls import url
from blog import views

#Template tagging
app_name = 'blog'

urlpatterns = [
    url(r'^about/$', views.about, name='about'),
    url(r'^contact/$', views.contact, name='contact'),
    url(r'', views.PostList.as_view(), name='index'),
    url(r'<slug:slug>/', views.PostDetail.as_view(), name='post_detail'),
]

templates/home.html -- 我的 html 文件之一

    <!DOCTYPE html>
{% load static %}
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <meta http-equiv="X-UA-Compatible" content="ie=edge">
  <link rel="stylesheet" href="{% static "all.css" %}">
  <link rel="stylesheet" href="{% static "bootstrap.css" %}">
  <link rel="stylesheet" href="{%static "style.css" %}">
  <title>Online yuridik xizmatlar</title>
</head>

<body>
  <nav class="navbar navbar-expand-sm navbar-dark bg-dark">
    <div class="container">
      <a href="{% url 'blog:home' %}" class="navbar-brand"><i class="fas fa-balance-scale">iLawyer.uz</i></a>
      <button class="navbar-toggler" data-toggle="collapse" data-target="#navbarCollapse">
        <span class="navbar-toggler-icon"></span>
      </button>
      <div class="collapse navbar-collapse" id="navbarCollapse">
        <ul class="navbar-nav ml-auto">
          <li class="nav-item">
            <a href="{% url 'blog:home' %}" class="nav-link">Bosh sahifa</a>
          </li>
          <li class="nav-item">
            <a href="{% url 'blog:about' %}" class="nav-link">Biz haqimizda</a>
          </li>
          <li class="nav-item">
            <a href="{% url 'blog:index' %}" class="nav-link">Blog</a>
          </li>
          <li class="nav-item">
            <a href="{% url 'blog:contact' %}" class="nav-link">Biz bilan bog'laning</a>
          </li>
        </ul>
      </div>
    </div>
  </nav>

  <!--Live chat-->
  <script src="https://apps.elfsight.com/p/platform.js" defer></script>
<div class="elfsight-app-ea6b60a1-0209-4c7c-b0a3-e902f08b035b"></div>


  <!-- SHOWCASE SLIDER -->
  <section id="showcase">
    <div id="myCarousel" class="carousel slide" data-ride="carousel">
      <ol class="carousel-indicators">
        <li data-target="#myCarousel" data-slide-to="0" class="active"></li>
        <li data-target="#myCarousel" data-slide-to="1"></li>
        <li data-target="#myCarousel" data-slide-to="2"></li>
      </ol>
      <div class="carousel-inner">
        <div class="carousel-item active">
          <img src="{% static "assets/IMG_20181202_080054_048.jpg" %}" alt="" class="imgcar">
          <div class="container">
            <div class="carousel-caption d-none d-sm-block text-right mb-5">
              <h1 class="display-3">Ko'p yillik tajriba</h1>
              <p class="lead">Lorem ipsum dolor sit amet consectetur adipisicing elit. Iste, aperiam vel ullam deleniti reiciendis ratione quod aliquid inventore vero perspiciatis.</p>
              <a href="#" class="btn btn-danger btn-lg">Hoziroq ro'yxatdan o'ting</a>
            </div>
          </div>
        </div>

        <div class="carousel-item ">
          <img src="{% static "assets/IMG_20181206_161518_451.jpg" %}" alt=""class="imgcar">
          <div class="container">    
            <div class="carousel-caption d-none d-sm-block mb-5">
              <h1 class="display-3">Tajribali mutaxasisslar</h1>
              <p class="lead">Lorem ipsum dolor sit amet consectetur adipisicing elit. Iste, aperiam vel ullam deleniti reiciendis ratione quod aliquid inventore vero perspiciatis.</p>
              <a href="#" class="btn btn-primary btn-lg">Ko'proq ma'lumot</a>
            </div>
          </div>
        </div>

        <div class="carousel-item">
          <img src="{% static "assets/IMG_20181212_150700_070.jpg" %}" alt=""class="imgcar">
          <div class="container">
            <div class="carousel-caption d-none d-sm-block text-right mb-5">
              <h1 class="display-3">O'zaro ishonch</h1>
              <p class="lead">Lorem ipsum dolor sit amet consectetur adipisicing elit. Iste, aperiam vel ullam deleniti reiciendis ratione quod aliquid inventore vero perspiciatis.</p>
              <a href="#" class="btn btn-success btn-lg">Ko'proq ma'lumot</a>
            </div>
          </div>
        </div>
      </div>

      <a href="#myCarousel" data-slide="prev" class="carousel-control-prev">
        <span class="carousel-control-prev-icon"></span>
      </a>

      <a href="#myCarousel" data-slide="next" class="carousel-control-next">
        <span class="carousel-control-next-icon"></span>
      </a>
    </div>
  </section>

  <!--Ijtimoiy tarmoqlar uchun link-->

 <div id="home-icons" class="my-5 text-center">
   <div class="container">
     <div class="row">
       <div class="col-md-4">
        <i class="fab fa-telegram-plane fa-3x mb-3"></i>
        <h3>Telegramdagi kanal</h3>
        <p>Lorem ipsum dolor sit amet consectetur adipisicing elit. Odit, sapiente?</p>
       </div>
       <div class="col-md-4">
        <i class="fab fa-facebook-f fa-3x mb-3"></i>
        <h3>Facebookdagi sahifa</h3>
        <p>Lorem ipsum dolor sit amet consectetur adipisicing elit. Odit, sapiente?</p>
       </div>
       <div class="col-md-4">
        <i class="fab fa-instagram fa-3x mb-3"></i>
        <h3>Instagramdagi sahifa</h3>
        <p>Lorem ipsum dolor sit amet consectetur adipisicing elit. Odit, sapiente?</p>
       </div>
     </div>
   </div>
 </div>


 <div id="bg-box" class= "text-center text-white">
   <div class="dark-overlay py-5">
     <div class="container">
       <h1>Bizni ijtimoiy tarmoqlarda kuzating</h1>
       <p>Lorem, ipsum dolor sit amet consectetur adipisicing elit. Eius iure, officiis magni delectus corrupti dolorum?</p>
     </div>
   </div>
</div>



<!--Abour us-->


<div class="about-icons pb-5 my-5">
  <div class="container text-white text-center">
    <div class="row">
      <div class="col-md-4">
        <div class="card bg-danger p-4 my-4">
          <i class="fas fa-building fa-3x"></i>
          <h3>Sample</h3>
          <p class="m-0">Lorem ipsum, dolor sit amet consectetur adipisicing elit. Enim adipisci quisquam voluptatum voluptatibus quas officiis.</p>
        </div>
      </div>
      <div class="col-md-4">
        <div class="card bg-dark p-4 my-4">
          <i class="fas fa-bullhorn fa-3x"></i>
          <h3>Sample</h3>
          <p class="m-0">Lorem ipsum, dolor sit amet consectetur adipisicing elit. Enim adipisci quisquam voluptatum voluptatibus quas officiis.</p>
        </div>
      </div>
      <div class="col-md-4">
        <div class="card bg-danger p-4 my-4">
          <i class="fas fa-comments fa-3x"></i>
          <h3>Sample</h3>
          <p class="m-0">Lorem ipsum, dolor sit amet consectetur adipisicing elit. Enim adipisci quisquam voluptatum voluptatibus quas officiis.</p>
        </div>
      </div>
    </div>
    <div class="row">
      <div class="col-md-4">
        <div class="card bg-dark p-4 my-4">
          <i class="fas fa-box fa-3x"></i>
          <h3>Sample</h3>
          <p class="m-0">Lorem ipsum, dolor sit amet consectetur adipisicing elit. Enim adipisci quisquam voluptatum voluptatibus quas officiis.</p>
        </div>
      </div>
      <div class="col-md-4">
        <div class="card bg-danger p-4 my-4">
          <i class="fas fa-credit-card fa-3x"></i>
          <h3>Sample</h3>
          <p class="m-0">Lorem ipsum, dolor sit amet consectetur adipisicing elit. Enim adipisci quisquam voluptatum voluptatibus quas officiis.</p>
        </div>
      </div>
      <div class="col-md-4">
        <div class="card bg-dark p-4 my-4">
          <i class="fas fa-coffee fa-3x"></i>
          <h3>Sample</h3>
          <p class="m-0">Lorem ipsum, dolor sit amet consectetur adipisicing elit. Enim adipisci quisquam voluptatum voluptatibus quas officiis.</p>
        </div>
      </div>
    </div>
    
  </div>
</div>

<hr>


 <!--Post wapper-->
  <div class="post-wapper">
     <!--content-->
     <div class="content clearfix">

      <!--Main content-->   
          <div class="main-content">
              <h1 class="post-title">So'nggi postlar</h1>
  
              <div class="post clearfix">
                  <img src="{% static "assets/IMG_20181206_161518_451.jpg" %}" alt="" class="post-image">
                  <div class="post-preview">
                      <h2><a href="{% url 'blog:index' %}">Lorem ipsum dolor sit amet consectetur adipisicing.</a></h2>
                      <i class="far fa-user">Ramazon Kahharoff</i>
                      &nbsp;
                      <i class="far calendar"> Aug 19, 2020</i>
                      <p class="preview-text">Lorem ipsum dolor, sit amet consectetur adipisicing elit. 
                          Quisquam doloremque officiis, blanditiis maxime cupiditate beatae!
                      </p>
                      <a href="{% url 'blog:index' %}"class="btn read-more">Ko'proq</a>
                  </div>
              </div>
              <div class="post clearfix">
                  <img src="{% static "assets/IMG_20181206_161518_451.jpg" %}" alt="" class="post-image">
                  <div class="post-preview">
                      <h2><a href="{% url 'blog:index' %}">Lorem ipsum dolor sit amet consectetur adipisicing.</a></h2>
                      <i class="far fa-user">Ramazon Kahharoff</i>
                      &nbsp;
                      <i class="far calendar"> Aug 19, 2020</i>
                      <p class="preview-text">Lorem ipsum dolor, sit amet consectetur adipisicing elit. 
                          Quisquam doloremque officiis, blanditiis maxime cupiditate beatae!
                      </p>
                      <a href="{% url 'blog:index' %}"class="btn read-more">Ko'proq</a>
                  </div>
              </div>
              <div class="post clearfix">
                  <img src="{% static "assets/IMG_20181206_161518_451.jpg" %}" alt="" class="post-image">
                  <div class="post-preview">
                      <h2><a href="{% url 'blog:index' %}">Lorem ipsum dolor sit amet consectetur adipisicing.</a></h2>
                      <i class="far fa-user">Ramazon Kahharoff</i>
                      &nbsp;
                      <i class="far calendar"> Aug 19, 2020</i>
                      <p class="preview-text">Lorem ipsum dolor, sit amet consectetur adipisicing elit. 
                          Quisquam doloremque officiis, blanditiis maxime cupiditate beatae!
                      </p>
                      <a href="{% url 'blog:index' %}"class="btn read-more">Ko'proq</a>
                  </div>
              </div>
              <div class="post clearfix">
                  <img src="{% static "assets/IMG_20181206_161518_451.jpg" %}" alt="" class="post-image">
                  <div class="post-preview">
                      <h2><a href="{% url 'blog:index' %}">Lorem ipsum dolor sit amet consectetur adipisicing.</a></h2>
                      <i class="far fa-user">Ramazon Kahharoff</i>
                      &nbsp;
                      <i class="far calendar"> Aug 19, 2020</i>
                      <p class="preview-text">Lorem ipsum dolor, sit amet consectetur adipisicing elit. 
                          Quisquam doloremque officiis, blanditiis maxime cupiditate beatae!
                      </p>
                      <a href="{% url 'blog:index' %}"class="btn read-more">Ko'proq</a>
                  </div>
              </div>
              <div class="post clearfix">
                  <img src="{% static "assets/IMG_20181206_161518_451.jpg" %}" alt="" class="post-image">
                  <div class="post-preview">
                      <h2><a href="{% url 'blog:index' %}">Lorem ipsum dolor sit amet consectetur adipisicing.</a></h2>
                      <i class="far fa-user">Ramazon Kahharoff</i>
                      &nbsp;
                      <i class="far calendar"> Aug 19, 2020</i>
                      <p class="preview-text">Lorem ipsum dolor, sit amet consectetur adipisicing elit. 
                          Quisquam doloremque officiis, blanditiis maxime cupiditate beatae!
                      </p>
                      <a href="{% url 'blog:index' %}"class="btn read-more">Ko'proq</a>
                  </div>
              </div>
          </div>
      <!--Main content-->
  
        </div>
      
      <!--Content-->
  </div>


 <!--Post wapper-->

<!--FAQ-->

 <div id="faq" class=" d-flex align-items-center justify-ontent-center my-5 mb-5" >
  <div class="container ">
      <h2 class="text-center">Ko'p so'raladigan savollar</h2>
      <div class="accordion py-5">
          <div class="accordion-item" id="question1">
              <a class="accordion-link" href="#question1">
                  Bu yerda qanaqadir ko'p so'raladigan savol?
                  <ion-icon name="add-outline" class="plus"></ion-icon>
                  <ion-icon name="remove-outline"  class="minus"></ion-icon>
              </a>
              <div class="answer">
                  <p>
                      Lorem ipsum dolor sit amet consectetur adipisicing elit. Similique, repellat. 
                  Labore recusandae nisi eius quod.
                   Aspernatur sint reprehenderit sapiente ex optio maiores delectus quam? Velit.
                  </p>
              </div>
          </div>

          <div class="accordion-item" id="question2">
              <a class="accordion-link" href="#question2">
                  Bu yerda qanaqadir ko'p so'raladigan savol?
                  <ion-icon name="add-outline" class="plus"></ion-icon>
                  <ion-icon name="remove-outline"class="minus"></ion-icon>
              </a>
              <div class="answer">
                  <p>
                      Lorem ipsum dolor sit amet consectetur adipisicing elit. Similique, repellat. 
                  Labore recusandae nisi eius quod.
                   Aspernatur sint reprehenderit sapiente ex optio maiores delectus quam? Velit.
                  </p>
              </div>
          </div>

          <div class="accordion-item" id="question3">
              <a class="accordion-link" href="#question3">
                  Bu yerda qanaqadir ko'p so'raladigan savol?
                  <ion-icon name="add-outline" class="plus" ></ion-icon>
                  <ion-icon name="remove-outline" class="minus"></ion-icon>
              </a>
              <div class="answer">
                  <p>
                      Lorem ipsum dolor sit amet consectetur adipisicing elit. Similique, repellat. 
                  Labore recusandae nisi eius quod.
                   Aspernatur sint reprehenderit sapiente ex optio maiores delectus quam? Velit.
                  </p>
              </div>
          </div>

          <div class="accordion-item" id="question4">
              <a class="accordion-link" href="#question4">
                  Bu yerda qanaqadir ko'p so'raladigan savol?
                  <ion-icon name="add-outline" class="plus"></ion-icon>
                  <ion-icon name="remove-outline" class="minus"></ion-icon>
              </a>
              <div class="answer">
                  <p>
                      Lorem ipsum dolor sit amet consectetur adipisicing elit. Similique, repellat. 
                  Labore recusandae nisi eius quod.
                   Aspernatur sint reprehenderit sapiente ex optio maiores delectus quam? Velit.
                  </p>
              </div>
          </div>
      </div>
  </div>
  
</div>

<!--FAQ-->




 <!--Conact-->

 

 <div id="contact" class="mt-5">
   <div class="container">
    <div class="heading">
      <h1>Savolingizni yo'llang</h1>
    </div> 
     <div class="row">
       <div class="col-md-6">
         <form class="contact-form">
           <div class="for-group">
             <input type="text" class="form-control mt-2" placeholder="Ismingiz">
           </div>
           <div class="for-group">
            <input type="number" class="form-control mt-2" placeholder="Telefon raqamingiz">
          </div>
          <div class="for-group">
            <input type="email" class="form-control mt-2" placeholder="elektron pochtangiz">
          </div>
          <div class="for-group">
            <textarea type="text" class="form-control mt-2" rows="4" placeholder="Savollingizni yo'llang"></textarea>
          </div>
          <button type="submit" class="btn btn-primary mt-2">Xabarni jo'natish</button>
         </form>
       </div>
       <div class="col-md-6 contact-info">
        <div class="follow"><b>Manzil:</b> <i class="fas fa-map-marker-alt"></i>Mustaqillik ko'chasi, Toshket shahri, Uz </div>  
        <div class="follow"><b>Telefon raqam:</b><i class="fas fa-phone"></i>+998912345678</div>
        <div class="follow"><b>Pochta manzil:</b><i class="far fa-envelope"></i> Zip code</div>
        <div class="follow"><b>Web-sahifa:</b><i class="fab fa-internet-explorer"></i> online_yuridik_xizmat.uz</div>
        <div class="follow"><label><b>Ijtimoiy tarmoqdagi sahifalarimiz:</b></label>
          <a href="#"> <i class="fab fa-facebook-f"></i></a>
          <a href="#"> <i class="fab fa-youtube"></i></a>
          <a href="#"> <i class="fab fa-instagram"></i></a>
          <a href="#"> <i class="fab fa-telegram-plane"></i></a>
         </div>
      </div>
     </div>
   </div>
 </div>



  <!-- FOOTER -->
  <footer id="main-footer" class="text-center p-4 bg-dark text-white">
    <div class="container">
      <div class="row">
        <div class="col">
          <p>Copyright &copy;
            <span id="year"></span> Kahharoff</p>
        </div>
      </div>
    </div>
  </footer>




  <script src="{% static "jquery.js" %}"></script>
  <script src="{% static "popper.js" %}"></script>
  <script src="{% static "bootstrap.js" %}></script>

  <script>
    // Get the current year for the copyright
    $('#year').text(new Date().getFullYear());

    // Configure Slider
    $('.carousel').carousel({
      interval: 6000,
      pause: 'hover'
    });

  </script>
</body>

</html>

我收到一个错误:

 noreversematch 
raise NoReverseMatch(msg)
django.urls.exceptions.NoReverseMatch: Reverse for 'home' not found. 'home' is not a valid view function or pattern name. 

我找不到我的错误。我该如何解决这个问题?

【问题讨论】:

    标签: python django templates


    【解决方案1】:

    这行是问题

    <a href="{% url 'blog:home' %}" class="nav-link">Bosh sahifa</a>
    

    您的博客网址中没有名为 home 的网址。您需要调用存在的模式。像这样编辑您的app/urls.py

    from django.conf.urls import url
    from blog import views
    
    #Template tagging
    app_name = 'blog'
    
    urlpatterns = [
        url(r'', views.home, name='home'),
        url(r'^about/$', views.about, name='about'),
        url(r'^contact/$', views.contact, name='contact'),
        url(r'^list/$', views.PostList.as_view(), name='index'),
        url(r'<slug:slug>/', views.PostDetail.as_view(), name='post_detail'),
    ]
    

    请注意,我添加了主页 url 并编辑了索引 url

    【讨论】:

    • 但我的 html 文件位于 templates/blog/here html 文件中
    • 好的,那么您需要将url(r'', views.home, name='home'), 添加到您的博客url_patterns,并且可能将您的index 视图编辑为url(r'^list/$', views.PostList.as_view(), name='index'),
    • home 是我的主页 index 是我的帖子页面
    • 如果您不想更改网址,也可以将主页移出应用程序
    • 正如你所说,我将这个 url url(r'', views.home, name='home'),添加到我的博客 url 中,它打开了页面,但是当我按下帖子页面时,它并没有从导航栏从一个页面移动到另一个页面,它正在刷新主页。 html 不进入 post.html
    猜你喜欢
    • 2020-03-25
    • 2022-06-16
    • 2019-06-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-11-27
    相关资源
    最近更新 更多