2017-11-21 15 views
0

also, wenn ich meinen Code lokal ausführen, funktioniert es gut. Aber wenn ich es online laufe, bekomme ich NoReverseMatch bei /. Ich habe den Code für die letzten 2 Stunden durchgegangen, kann aber immer noch nicht den Grund dafür herausfinden.NoReverseMatch at/in base.html

P.S: Wenn es hier unnötigen Code gibt, lass es mich wissen, damit ich es ausziehen kann, stackoverflow sagt mir, es gibt zu viel Code und keine Erklärung hier.

base.html

{% load staticfiles %} 
<html> 
<head> 
    <title>Ranindu'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"> 
    {% if user.is_authenticated %} 
    <a href="{% url 'post_new' %}" class="top-menu"><span class="glyphicon glyphicon-plus"></span></a> 
    {% endif %} 
    <h1><a href="/">First Blog Success!</a></h1> 
</div> 
<div class="content container"> 
    <div class="row"> 
     <div class="col-md-8"> 
     {% block content %} 
     {% endblock %} 
     </div> 
    </div> 
</div> 
</body> 
</html> 

urls.py

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

urlpatterns = [ 
url(r'^$', views.post_list, name='post_list'), 
url(r'^post/(?P<pk>\d+)/$', views.post_detail, name='post_detail'), 
url(r'^post/new/$', views.post_new, name='post_new'), 
url(r'^post/(?P<pk>\d+)/edit/$', views.post_edit, name='post_edit'), 
] 

views.py

from django.shortcuts import render 
from django.utils import timezone 
from .models import Post 
from django.shortcuts import render, get_object_or_404 
from .forms import PostForm 
from django.shortcuts import redirect 


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

def post_new(request): 
    if request.method == "POST": 
     form = PostForm(request.POST) 
     if form.is_valid(): 
      post = form.save(commit=False) 
      post.author = request.user 
      post.published_date = timezone.now() 
      post.save() 
      return redirect('post_detail', pk=post.pk) 
else: 
    form = PostForm() 
return render(request, 'blog/post_edit.html', {'form':form}) 

def post_edit(request, pk): 
    post = get_object_or_404(Post, pk=pk) 
    if request.method == "POST": 
     form = PostForm(request.POST, instance=post) 
     if form.is_valid(): 
      post = form.save(commit=False) 
      post.author = request.user 
      post.published_date = timezone.now() 
      post.save() 
      return redirect('post_detail', pk=post.pk) 
    else: 
     form = PostForm(instance=post) 
    return render(request, 'blog/post_edit.html', {'form': form}) 

Error Screenshot in base.html line 13

+0

Ihre Ansichten bitte .. –

+0

Sind Sie die gleiche Version von Python läuft (3.6.0) und Django (1.11.7) auf der Entwicklungsumgebung? – Selcuk

+0

Ich benutze Ubuntu 16.04. Und auf meinem Terminal habe ich Python 2.7.12 und Python 3.5.2. Meine Django-Version ist 1.11.5. Ich habe schon ein paar Mal pull'd, und es hat gut online funktioniert. Nachdem die Sicherheitsfunktionen hinzugefügt wurden, um das Hinzufügen und Bearbeiten von Artikeln nur für die Person verfügbar zu machen, die bei django admin angemeldet war, funktionierte sie nicht mehr. (https://github.com/Ranindu/my-first-blog.git) – Ranindu

Antwort

0

Sie haben Ihren App-Namen bei der Angabe der URL nicht angegeben. Versuchen Sie es mit {% url 'your_app_name: post_new' %}