Обратный для ‘edit_post’ с аргументами ‘(«,)’ не найден. 1 шаблон (ы) попробован: [‘(?P [^/] ) /edit_post $’]

#django #django-models #django-views #django-forms #django-templates

#django #django-модели #django-просмотры #django-forms #django-шаблоны

Вопрос:

Я просматриваю учебное пособие по Django и получаю эту ошибку при попытке открыть представление post_detail (где я помещаю ссылку на edit_post ) для редактирования сообщения в моем приложении для блога. Я использую Django ==3.1.2.

urls.py

 path('<id>/edit_post', views.edit_post, name='edit_post'),
 

models.py

 class Post(models.Model):
    post_title = models.CharField(max_length=500,default='')
 

Шаблон, который вызывает ошибку в строке 5 — post_detail_view.html . В сообщении об ошибке выделяется {% url ‘edit_post’ posts.id %}

post_detail_view.html

 <br>
<a>{{ post.post_title }}</a>
<br>

 <a href="{% url 'mains:edit_post' post.id %}">Edit</a>
 

Проблема

Когда я открываю post_detail.html страница в браузере, я получаю эту ошибку: — Обратный для ‘edit_post’ с аргументами ‘(«,)’ не найден. 1 шаблон (ы) испробован: [‘(?P[^/] )/edit_post $’]. Когда я удаляю ссылку edit_post со страницы post_detail, все работает нормально, но когда я помещаю ссылку edit_post в post_detail и открываю ее, возникает эта ошибка. Я застрял с этой проблемой и понятия не имею, что не так.

Что я пробовал.

1). Я изменил ссылку на кнопку редактирования.

2). Я заменил другое представление, но снова изменил его. И это не сработало.

Помогите мне в этом. Я буду очень признателен за вашу помощь. Заранее благодарю вас!!

Комментарии:

1. Попробуйте изменить на post.slug у вас есть post.post_title, но в edit url {} вы использовали posts.slug

2. Вы имеете в виду, что я должен использовать:- post.post_title вместо post.slug

3. Нет, я имею в виду, что у вас опечатка, это должно быть post.slug, а не posts.slug

4. Спасибо, но я изменил его, возникает та же ошибка.

5. Тогда, скорее всего, у вас пустой slug. Вы проверили своего администратора, чтобы убедиться, что поле slug не пустое?

Ответ №1:

Проблема была в моем post_detail.html .

Я должен использовать data.id , вместо post.id . Потому что все объекты в моем post_detail.html был связан с data.id .

 <a href="{% url 'mains:edit_post' data.id %}">Edit</a>