【问题标题】:NoReverse MAtch at /无反向匹配在 /
【发布时间】:2020-01-24 09:24:12
【问题描述】:

我在https://tutorial.djangogirls.org/en 之后开发了我的博客。该网站在 localhost 上运行,但在 pythonanywhere.com 中显示 NoReverse Match at / 错误

未指定视图时会显示此错误。但是我已经给出了代码 sn-ps 来显示视图。

1) 我的意见.py

from django.utils import timezone
from .models import Post

# Create your views here.
def post_list(request):
    posts = Post.objects.filter(published_date__lte=timezone.now()).order_by('published_date')
    return render(request, 'blog/post_list.html', {'posts': posts})

def post_detail(request, pk):
    post = get_object_or_404(Post, pk=pk)
    return render(request, 'blog/post_detail.html', {'post': post})

2) post_detail.html


{% block content %}
    <div class="post">
        {% if post.published_date %}
            <div class="date">
                {{ post.published_date }}
            </div>
        {% endif %}
        <h2>{{ post.title }}</h2>
        <p>{{ post.text|linebreaksbr }}</p>
    </div>
{% endblock %}

3) post_list.html


{% block content %}
    {% for post in posts %}
        <div class="post">
            <div class="date">
                <p>published: {{ post.published_date }}</p>
            </div>
            <h2><a href="{% url 'post_detail' pk=post.pk %}">{{ post.title }}</a></h2>
            <p>{{ post.text|linebreaksbr }}</p>
        </div>
    {% endfor %}
{% endblock %}

4) 和 base.html

<html>
    <head>       
        <title>Krishna's blog</title>
        <link rel="stylesheet" href="//maxcdn.bootstrapcdn.com/bootstrap/3.2.0/css/bootstrap.min.css">
        <link rel="stylesheet" href="//maxcdn.bootstrapcdn.com/bootstrap/3.2.0/css/bootstrap-theme.min.css">
        <link href="//fonts.googleapis.com/css?family=Lobster&subset=latin,latin-ext" rel="stylesheet" type="text/css">
        <link rel="stylesheet" href="{% static 'css/blog.css' %}">
    </head>
    <body>
        <div class="page-header">
            <h1><a href="/">Django Girls Blog</a></h1>
        </div>
        <div class="content container">
            <div class="row">
                <div class="col-md-8">
                {% block content %}
                {% endblock %}
                </div>
            </div>
        </div>
    </body>    
</html>

1) 显示的错误是:

Reverse for 'post_detail' not found. 'post_detail' is not a valid view function or pattern name.
Request Method: GET
Request URL:    http://bhawanabadlani.pythonanywhere.com/
Django Version: 2.0.13
Exception Type: NoReverseMatch
Exception Value:    
Reverse for 'post_detail' not found. 'post_detail' is not a valid view function or pattern name.
Exception Location: /home/bhawanabadlani/.virtualenvs/bhawanabadlani.pythonanywhere.com/lib/python3.5/site-packages/django/urls/resolvers.py in _reverse_with_prefix, line 634
Python Executable:  /usr/local/bin/uwsgi
Python Version: 3.5.6
Python Path:    
['/home/bhawanabadlani/bhawanabadlani.pythonanywhere.com',
 '/var/www',
 '.',
 '',
 '/var/www',
 '/home/bhawanabadlani/.virtualenvs/bhawanabadlani.pythonanywhere.com/lib/python35.zip',
 '/home/bhawanabadlani/.virtualenvs/bhawanabadlani.pythonanywhere.com/lib/python3.5',
 '/home/bhawanabadlani/.virtualenvs/bhawanabadlani.pythonanywhere.com/lib/python3.5/plat-linux',
 '/home/bhawanabadlani/.virtualenvs/bhawanabadlani.pythonanywhere.com/lib/python3.5/lib-dynload',
 '/usr/lib/python3.5',
 '/usr/lib/python3.5/plat-linux',
 '/home/bhawanabadlani/.virtualenvs/bhawanabadlani.pythonanywhere.com/lib/python3.5/site-packages']
Server time:    Tue, 24 Sep 2019 13:37:10 +0530
Error during template rendering
In template /home/bhawanabadlani/bhawanabadlani.pythonanywhere.com/blog/template/blog/base.html, error at line 6

Reverse for 'post_detail' not found. 'post_detail' is not a valid view function or pattern name.
1   {% load static %}
2   <html>
3       <head>       
4           <title>Krishna's blog</title>
5           <link rel="stylesheet" href="//maxcdn.bootstrapcdn.com/bootstrap/3.2.0/css/bootstrap.min.css">
6           <link rel="stylesheet" href="//maxcdn.bootstrapcdn.com/bootstrap/3.2.0/css/bootstrap-theme.min.css">
7           <link href="//fonts.googleapis.com/css?family=Lobster&subset=latin,latin-ext" rel="stylesheet" type="text/css">
8           <link rel="stylesheet" href="{% static 'css/blog.css' %}">
9       </head>
10      <body>
11          <div class="page-header">
12              <h1><a href="/">Django Girls Blog</a></h1>
13          </div>
14          <div class="content container">
15              <div class="row">
16                  <div class="col-md-8">

【问题讨论】:

  • 添加你的 urls.py
  • 你在 urls.py 中添加了post_detail

标签: django github pythonanywhere


【解决方案1】:

如果它在本地工作但在 PythonAnywhere 上不能工作,那么您可能对代码库中的一个或多个 urls.py 文件进行了更改,这些文件没有提交到您的 git 存储库,也没有转移到 PythonAnywhere。

您必须确保 Django 知道名称为 post_detail 的 url,以便您的模板能够找到 post_detail 的反面。

【讨论】:

    【解决方案2】:

    感谢您的回复。我意识到,每当我在 pythonanywhere 帐户中从 GIT 中提取更改时,我都必须重新加载网页,而不是通过刷新它,而是在 web 应用程序页面中按下重新加载按钮。

    有趣的是它显示了错误,注意到已经进行了一些更改,但它没有包含这些更改。

    点击绿色 webapp 重新加载按钮时会合并更改。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-04-09
      • 2012-12-20
      • 1970-01-01
      • 2021-09-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多