Реверс для 'viewpost' с аргументами '(1,)' не найден. Пробовали 1 шаблон (ы): ['int: post \\. Id $']. Почему я получаю эту ошибку? - PullRequest
0 голосов
/ 14 июля 2020

Я пытаюсь выучить django, и при создании представления окна просмотра я обнаружил эту ошибку, говоря: Reverse for 'viewpost' with arguments '(1,)' not found. 1 pattern(s) tried: ['int:post\\.id$'] Я не понимаю, в чем заключается ошибка, которую я делаю

Views.py

from django.shortcuts import render
from .models import Post

# Create your views here.
def main(request):
    return render(request, "blog/index.html", {"Posts":Post.objects.all()})

def viewpost(request):
    
    return render(request, "blog/viewpost.html")

urls.py

from django.urls import path, include
from . import views


urlpatterns = [
    path('',views.main, name = 'main'),
    path('viewpost/int:pk/', views.viewpost, name = 'viewpost')
    
]

index. html

{% extends 'blog/layout.html' %}

{% block body %}
    <h1>Physics Blog</h1>
    
    {% for post in Posts %}
        <fieldset>
            <a href = "{% url 'viewpost' post.id %}"><h2>{{ post.Title }}</h2></a>
            <a href = "{% url 'viewpost' post.id %}"><h4>{{ post.Description }}</h4></a>
            <a href = "{% url 'viewpost' post.id %}"><h6>{{ post.Author }}</h6></a>   
        </fieldset>   
        <br>
    {% endfor %}
    

{% endblock %}

viewpost. html

{% extends 'blog/layout.html' %}
{% block body %}
    <h1>{{ post.Title }}</h1>
    <h1>{{ post.Description }}</h1>
    <h1>{{ post.Author }}</h1>
    
{% endblock %}

1 Ответ

0 голосов
/ 14 июля 2020

Проблема в этой строке:

path('viewpost/int:pk/', views.viewpost, name = 'viewpost')

int:pk отсутствуют скобки angular. Измените его на

path('viewpost/<int:pk>/', views.viewpost, name='viewpost')

Кажется, что path() в вашем вопросе не соответствует 'int:post\\.id$ в сообщении об ошибке. Поэтому убедитесь, что вы сохранили файл и перезапустили runserver.

Вам также придется изменить viewpost, чтобы он принимал pk.

def viewpost(request, pk):
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...