2017-11-21 5 views
0

내 코드를 로컬에서 실행할 때 잘 동작합니다. 하지만 온라인으로 실행할 때 /에서 NoReverseMatch를 얻습니다. 지난 2 시간 동안 코드를 살펴 보았지만 그 이유를 아직 알 수 없습니다.Base.html의 NoReverseMatch

P.S : 여기에 불필요한 코드가 있으면 알려주세요.이 코드를 사용하면 stackoverflow에 너무 많은 코드와 설명이 나와 있습니다.

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

귀하의 의견 바랍니다 .. –

+0

당신은 개발 환경에 파이썬 (3.6.0)와 장고 (1.11.7)의 동일한 버전을 실행하고 있습니까? – Selcuk

+0

우분투 16.04를 사용합니다. 그리고 제 터미널에는 파이썬 2.7.12와 파이썬 3.5.2가 있습니다. 내 django 버전은 1.11.5입니다. 나는 전에 두 번 pull'd하고 온라인으로 잘 일했다. django admin에 로그인 한 사람 만 기사를 추가하고 편집 할 수 있도록 보안 기능을 추가 한 후 작업이 중단되었습니다. (https://github.com/Ranindu/my-first-blog.git) – Ranindu

답변

0

url을 언급하는 동안 앱 이름을 지정하지 않았습니다. {% URL이 'your_app_name을 : post_new'%}를 를 사용해보십시오