2017-11-12 3 views
0

Warum passiert das? Ich mache alles nach den Anweisungen. Ich studiere.Seite nicht gefunden django

urls.py

from django.conf.urls import url,include 
from django.contrib import admin 
from . import views 
urlpatterns = [ 
    #url(r'^$',views.main,name="main"), 
    url(r'^post/(?P<id>[0-9]+)/', views.post_detail, name='post_detail'), 
] 

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 
# Create your views here. 

def post_detail(request,id): 
    post = get_object_or_404(Post, pk=id) 
    return render(request, 'main/post_detail.html', {'post': post}) 

post_detail.html

{% extends 'main/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 %} 

Was ist zu tun? Sogar anstelle von id Put pk, aber nichts hilft.

enter image description here

+1

Veröffentlichen Sie Ihre Haupturls.py. –

+0

@DanielRoseman Hauptfunktion ist Arbeit, aber ich schreibe "localhost: 8000/post/2 /" nichts ändert sich. [link auf screenshot] (http://prntscr.com/h9gjk0) –

+0

Gibt es Post mit ID 2 existieren? –

Antwort

1

Ihre urls.py Datei sollte funktionieren (es für mich gearbeitet hat), aber Sie sollten diese URL mit $ enden passenden URLs mit etwas mit dieser Ansicht nach Produkt-ID zu verhindern.

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

Sie können pdb in post_detail Methode verwenden, um zu überprüfen aufgerufen:

def post_detail(request,id): 
    import pdb 
    pdb.set_trace() 
    post = get_object_or_404(Post, pk=id) 
    return render(request, 'main/post_detail.html', {'post': post}) 

Wenn Verfahren, dass die Ausführung aufgerufen wird, sollte auf pdb.set_trace() Linie stoppen. Sie können es fortsetzen, indem Sie 'c' und ENTER drücken. pdb ist sehr nützlich und Sie sollten es zuerst verwenden, wenn Sie ein Problem haben. (Modusdetails: https://docs.python.org/2/library/pdb.html)

Wenn Methode aufgerufen wird, sollte es Problem mit dem Mangel des Beitrags mit gegebener Identifikation sein, andernfalls sollten Sie sicherstellen, dass ROOT_URLCONF von den Einstellungen auf dieses Modul verweisen.

ist mit dieser ID Beitrag zu überprüfen vorhanden:

diesen Befehl Versuchen in django Shell:

Post.objects.get(pk=1) 

wenn es

Post.DoesNotExist 

zurück, als Sie diesen Beitrag erstellen müssen mit:

Post.objects.create(pk=1, **some_values) 
+0

Ich habe es getan, aber nichts hat sich geändert. Post mit ID 4 existiert, aber der Link funktioniert nicht [id 4] (https://prnt.sc/h9gwtq). Ich benutze Python3 –

+0

In diesem Bild sehe ich, dass Seite für Post mit ID = 4 richtig gerendert wird. Was ist damit nicht in Ordnung? – domandinho

+0

Der Link lädt endlos [Bildschirm] (http://prntscr.com/h9h1zr) –