2017-05-23 76 views
0

我試着djangoGirls教程,並做了擴展您的應用程序後,我的網站在本地工作得很好,在http://127.0.0.1:8000/。但是,當我拉來了PythonAnyWhere並嘗試接取的網站,我得到了錯誤NoReverseMatch,像下面的圖片:部署到PythonAnyWhere後得到NoReverseMatch錯誤

NoReverseMatch Error

所以我想知道是否有人有什麼我可以做一個想法解決問題,因爲我嘗試和不能做到這一點。我不知道如何使它工作。

我所有的代碼都是類似的教程,在這裏他們:

urls.py:

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

urlpatterns = [ 
    url(r'^$', views.post_list), 
    url(r'^post/(?P<pk>[0-9]+)/$', views.post_detail), 
] 

views.py

from django.shortcuts import render, get_object_or_404 
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_lists.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}) 

models.py:

from django.db import models 
from django.utils import timezone 

class Post(models.Model): 
    author = models.ForeignKey('auth.User') 
    title = models.CharField(max_length = 200) 
    text = models.TextField() 
    created_date = models.DateTimeField(default = timezone.now) 
    published_date = models.DateTimeField(blank = True, null = True) 

    def publish(self): 
     self.published_date = timezone.now() 
     self.save() 

    def __str__(self): 
     return self.title 

base.html

{% load staticfiles %} 
<html> 
<head> 
    <title>Django Girls 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> 

post_lists.html:

{% extends 'blog/base.html' %} 

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

post_detail.html:

{% extends 'blog/base.html' %} 

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

在github上的項目的鏈接是github.com/lucasdaquina/my-第一博客

對不起,沒有把一個鏈接,我不能把多個鏈接呢。

如果我需要提供一些其他必要的信息來幫助我,請讓我現在。 謝謝大家的幫助和關注。

+0

也許嘗試重裝服務器?我認爲它可能會緩存python文件,但不是模板。 – Brobin

回答

2

當你按照Django Girls tutorial,你應該首先得到一個NoReverseMatch錯誤。然後它會告訴你如何解決它。

首先,url標記應該只有'post_detail',而不是'blog.view.post_detail'

{% url 'post_detail' pk=post.pk %}" 

然後,教程讓你的名字添加到您的URL模式來修復錯誤:

url(r'^post/(?P<pk>[0-9]+)/$', views.post_detail, name="post_detail"),