2017-05-23 6 views
0

Ich versuche das DjangoGirls-Tutorial, und nach der Erweiterung Ihrer Anwendung funktioniert meine Website gut lokal, auf der http://127.0.0.1:8000/. Aber wenn ich an die PythonAnyWhere ziehen und versuchen, die Website Acess, bekam ich den Fehler NoReverseMatch, wie das Bild unten:Nach der Bereitstellung in PythonAnyWhere erhalten NoReverseMatch-Fehler

NoReverseMatch Error

So möchte ich wissen, ob jemand eine Idee, was ich tun kann, um löse das Problem, weil ich es versuche und nicht kann. Ich habe keine Ahnung, wie ich es zum Laufen bringen kann.

Alle sind meine Codes zum Tutorial ähnlich, hier sind sie:

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 %} 

Der Link zum Projekt auf Github ist github.com/lucasdaquina/my- first-blog

Sorry, ich habe keinen Link darauf gesetzt, ich kann noch nicht mehr als einen Link setzen.

Wenn ich einige andere Informationen brauche, um mir zu helfen, lassen Sie mich jetzt. Vielen Dank für die Hilfe und Aufmerksamkeit.

+0

Vielleicht versuchen, den Server neu zu laden? Ich denke, es kann Python-Dateien, aber nicht Vorlagen zwischenspeichern. – Brobin

Antwort

2

Wenn Sie die Django Girls tutorial folgen, sollten Sie zunächst einen NoReverseMatch Fehler erhalten. Es zeigt Ihnen dann, wie Sie es beheben können.

Zunächst einmal sollte das URL-Tag nur 'post_detail' haben, nicht 'blog.view.post_detail', wie Sie haben.

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

Dann wird das Tutorial bekommt man einen Namen Ihrer URL-Muster hinzufügen, um den Fehler zu beheben:

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