Проект Django: не найдено сообщений, соответствующих запросу - PullRequest
0 голосов
/ 10 мая 2019

Проблема: Я пытаюсь получить подробный вид (отдельное сообщение в блоге), поместив следующий URL в браузере:

http://127.0.0.1:8000/post/1/

Должно быть получено и отображено первое сообщение в блоге на экране, однако возникает следующая ошибка:

Page not found (404)
Request Method: GET
Request URL:    http://127.0.0.1:8000/post/1/
Raised by:  socialmedia.views.PostDetailView
No post found matching the query

Обновление , согласно комментарию Даниэля Роземана ниже. Я получаю сообщение об ошибке, в котором говорится, что у меня нет поста с идентификатором 1, но, очевидно, я не понимаю реализацию постов, поскольку я предполагал, что при создании поста ему автоматически присваивался идентификатор в БД. Было бы полезно, если бы решение содержало четкое объяснение того, чего мне не хватает в моем понимании здесь как новичка.

Я заглянул в админ, кликаю по сообщениям и нигде не могу найти идентификационный номер.

enter image description here

Я просмотрел код и, насколько я вижу, правильно создал представление, а также у меня есть маршрут (в URL), который должен вызывать представление.

Вопрос: Может кто-нибудь указать на ошибку, пожалуйста? Не могли бы вы также предоставить полезное объяснение, помогающее разобраться в этом конкретном примере (маршрутизация, сообщения с запросами и т. Д.)

Я смотрел на подобные вопросы и ответы, но не могу найти решение для этого. Похожий вопрос предполагал, что это может быть связано с администратором или маршрутами, но использовал регулярные выражения в urls.py, предлагая более старую версию Django, которая мне не нужна.

urls.py

#THIS IS THE SOCIAL MEDIA URLS ..not the root directory URLS
from django.contrib import admin
from django.urls import path
from . views import PostListView,PostDetailView
from . import views


urlpatterns = [
    path('', PostListView.as_view(), name='socialmedia-home'),
    path('post/<int:pk>/', PostDetailView.as_view(), name='post-detail'),
    path('about/', views.about, name='socialmedia-about'), 
]

views.py

from django.shortcuts import render
from .models import Post #import the Models Post
from django.views.generic import ListView,DetailView


from django.http import HttpResponse
# Create your views here.

class PostListView(ListView):
    model = Post #what model to query in order to create the list
    template_name = 'socialmedia/home.html' """<app>/<model>_<viewtype>.html
    in this case would be socialmedia/post_detail.html
    """
    context_object_name = 'posts'
    ordering = ['-date_posted']

class PostDetailView(DetailView):
    model = Post 

def about(request):
    return render(request,'socialmedia/about.html',{'title':'About'})

post_detail.html

{% extends "socialmedia/base.html" %}
{% block content %}

    <article class="media content-section">
        <img class="rounded-circle article-img" src="{{object.author.profile.image.url}}">
    <div class="media-body">
        <div class="article-metadata">
      <a class="mr-2" href="#">{{ object.author }}</a>
      <small class="text-muted">{{ object.date_posted|date:"F d, Y"}}</small>
    </div>
    <h2 class="article-title">{{ object.title }}</h2>
    <p class="article-content">{{ object.content }}</p>
  </div>
</article>
{% endblock content %}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...