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})
귀하의 의견 바랍니다 .. –
당신은 개발 환경에 파이썬 (3.6.0)와 장고 (1.11.7)의 동일한 버전을 실행하고 있습니까? – Selcuk
우분투 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