Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > Python
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 08.12.2019, 15:31   #1
raulIQ
 
Регистрация: 11.10.2019
Сообщений: 9
По умолчанию NoReverseMatch at /

django выдает ошибку:
NoReverseMatch at /
Reverse for 'post_detail_url' with keyword arguments '{'slug': ''}' not found. 1 pattern(s) tried: ['<str?P<slug>[^/]+)/$']

1 <!DOCTYPE html>
2 <html lang="en">
3 <head>
4 <meta charset="UTF-8">
5 <title>
6 {% block title %}
7 Blog Engine
8 {% endblock %}
9 </title>
10 <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/css/bootstrap.min.css" integrity="sha384-Vkoo8x4CGsO3+Hhxv8T/Q5PaXtkKtu6ug5TOeNV6gBiFeWPGFN9MuhO f23Q9Ifjh" crossorigin="anonymous">
views.py:
Код:
from django.shortcuts import render
from .models import Post
# Create your views here.
def  index(request):
	posts = Post.objects.all()
	return render(request, 'blog/index.html', context = {'posts':posts})
def post_detail(request, slug):
	post = Post.objects.get(slug__iexact=slug)
	return render(request, 'blog/post_detail.html', context = {'post':post})
urls.py:
Код:
from django.urls import path, include
from . import views

app_name = 'blog'

urlpatterns = [
	path('',views.index, name = 'posts_list_url'),
	path('<str:<slug>/',views.post_detail, name = 'post_detail_url')
index.html:
Код:
{% endblock %}

{% block content %}
	<h1 class="mb-5">Posts:</h1>
	{% for post in posts %}

	<div class="card">
	  <div class="card-header">
	    {{post.date_pub}}
	  </div>
	  <div class="card-body">
	    <h5 class="card-title">{{post.title}}</h5>
	    <p class="card-text">{{post.body|truncatewords:15}}</p>
	    <a href="{% url 'blog:post_detail_url' slug=post.slug %}" class="btn btn-primary">Read</a>
	  </div>
	</div>
		
	{% endfor %}
{% endblock %}
raulIQ вне форума Ответить с цитированием
Старый 12.12.2019, 15:42   #2
Arkuz
Форумчанин
 
Аватар для Arkuz
 
Регистрация: 22.09.2007
Сообщений: 540
По умолчанию

Цитата:
Сообщение от raulIQ Посмотреть сообщение
path('<str:<slug>/',views.post_detail, name = 'post_detail_url')
Лишняя угловая скобка перед slug. Без нее надо.
"<str:slug>/"

Последний раз редактировалось Arkuz; 13.12.2019 в 01:23.
Arkuz вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск