#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>