Уведомления

Группа в Telegram: присоединиться

#1 Янв. 19, 2021 20:42:03

medusa_01
Зарегистрирован: 2020-11-14
Сообщения: 23
Репутация: +  1  -
Профиль   Отправить e-mail  

Первый проект

Доброго времени суток. Прошу помощи. сразу хочу извиниться за ошибки. если таковые увидите - работать и учиться утомляет. Вопрос такой - я нгашел мануал по созданию проектов на Django . все шло нормально до момента расширения приложения. Требовалось добавить в файл blog/templates/blog/post_list.html строку <h1><a href=“{% url ‘post_detail’ pk=post.pk %}”>{{ post.title }}</a></h1> , чтобы в итоге файл был таким:

 {% extends 'blog/base.html' %}
{% block content %}
   {% for post in posts %}
     <div class="post">
            <div class="date">
            <p>Опубликовано: {{ post.published_date }}</p>
            </div>
            <h1><a href="{% url 'post_detail' pk=post.pk %}">{{ post.title }}</a></h1>
            <p>{{ post.text|linebreaksbr }}</p>
     </div>
   {% endfor %}
{% endblock %}
После чго должна была появиться ошибка:

Однако у меня выплыла совсем другая ошибка:
NoReverseMatch at /

Reverse for ‘post_detail’ not found. ‘post_detail’ is not a valid view function or pattern name.

Request Method: GET
Request URL: http://127.0.0.1:8000/
Django Version: 2.2.17
Exception Type: NoReverseMatch
Exception Value:

Reverse for ‘post_detail’ not found. ‘post_detail’ is not a valid view function or pattern name.

Exception Location: /home/medusa/djangogirls/medusavenv/lib/python3.6/site-packages/django/urls/resolvers.py in _reverse_with_prefix, line 673
Python Executable: /home/medusa/djangogirls/medusavenv/bin/python
Python Version: 3.6.9
Python Path:

['/home/medusa/djangogirls',
‘/usr/lib/python36.zip’,
‘/usr/lib/python3.6’,
‘/usr/lib/python3.6/lib-dynload’,
‘/home/medusa/djangogirls/medusavenv/lib/python3.6/site-packages’]

Server time: Вт, 19 Янв 2021 21:21:01 +0300
Если я теперь создаю URL для странички поста blog/urls.py, добавив строку path('post/<int:pk>/', views.post_detail, name='post_detail'),:
 from django.urls import path
from . import views
urlpatterns = [
    path('', views.post_list, name='post_list'),
    path('post/<int:pk>/', views.post_detail, name='post_detail'),
]
соединение с сервером просто разрывается
Попытка соединения не удалась

Firefox не может установить соединение с сервером 127.0.0.1:8000.
, хотя в самом Терминале ошибка присутствует. Дальнейшее прохождение мануала просто не возможно. Подскажите, если возможно конечно, где нужно править. Может не достаточно информации я сообщил. Спасибо.

Отредактировано medusa_01 (Янв. 19, 2021 20:58:57)

Офлайн

#2 Янв. 23, 2021 17:00:03

Alex.py
Зарегистрирован: 2020-09-20
Сообщения: 12
Репутация: +  0  -
Профиль   Отправить e-mail  

Первый проект

В Вашем приложении blog, вроде, создайте переменную app_name и пропишите имя маршрута в шаблоне в таком формате:

app_name:view_name

Но я думаю, ошибку Вы поняли

Отредактировано Alex.py (Янв. 23, 2021 17:00:23)

Офлайн

#3 Апрель 4, 2021 20:55:04

eleks
Зарегистрирован: 2014-08-14
Сообщения: 24
Репутация: +  0  -
Профиль   Отправить e-mail  

Первый проект

Пытаюсь изучать Django по книге Владимира Дронова “Django 3.0 Практика создания сайтов на Python”.
Использую Python 3.8.6 и Django 3.1.7 (последние на данный момент версии).
Проблема возникла в самом начале. Распишу все по пунктам:
1. Создаю новый проект samplesite:

 django-admin startproject samplesite
2. Перехожу в папку samplesite и запускаю отладочный веб-сервер:
cd samplesite
 python manage.py runserver
3. Далее в браузере ввожу ссылку:
 http://127.0.0.1:8000/
и все отлично, отладочный сервер работает!
4. Далее в книге предлагается создать некое приложение bboard:
 python manage.py startapp bboard
5. Регистрирую новое приложение в файле settings.py расположенном в папке проекта samplesite. Для этого, в перечень приложений INSTALLED_APPS добавляю строку:
 INSTALLED_APPS = [
    ...
    'bboard.apps.BboardConfig',
]
Судя по различной информации из сети, можно было бы просто добавить ‘bboard’. Но пока это не суть важно.
6. Вносим изменения в файл views.py, расположенный внутри приложения bboard. В книге предлагается внести туда следующий код:
 from django.http import HttpResponse
def index(request):
    return HttpResponse("Здесь будет выведен список объявлений.")
7. Запускаю отладочный веб-сервер:
python manage.py runserver
Ввожу в строке браузера ссылку на приложение bboard:
 http://127.0.0.1:8000/bboard/
и получаю в ответ сообщение об ошибке:
Page not found (404)
Request Method: GET
Request URL: http://127.0.0.1:8000/bboard/
Using the URLconf defined in samplesite.urls, Django tried these URL patterns, in this order:

admin/
The current path, bboard/, didn't match any of these.
Т.е. текущий путь bboard не найден. Толи автор чего-то не договорил, толи я чего-то не понял.

Офлайн

#4 Апрель 4, 2021 22:04:19

eleks
Зарегистрирован: 2014-08-14
Сообщения: 24
Репутация: +  0  -
Профиль   Отправить e-mail  

Первый проект

Вроде бы разобрался. Сообщение выводится. Продолжаю разбираться дальше.

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version