Django: подходящий запрос не существует. Ошибка: 500
Пытаюсь найти ошибку - уже второй день
Задачей было создать кнопку для сохранения в сессии части информации о конкретной странице, которую можно было бы "прочитать позже". Я пытаюсь выяснить, почему я не могу найти совпадение в моем запросе.
id, который должен генерироваться в POST, равен 8, но, насколько я понял из логов, он равен 0.
Я ищу предложения о том, как выяснить, где проблема. Я высказал все идеи, которые у меня были.
Дополнительно, интересно, хорошо это или плохо, что в моем views.py я определил называемую модель EssayCls
в двух функциях, где я определяю ее с разными именами. В def get
как selected_essay = EssayCls.objects.get(slug=slug)
, а в def post
как post = EssayCls.objects.get(slug=slug)
.
Мой views.py:
Мой urls.py:
from django.urls import path
from django.views.generic.base import RedirectView
from django.contrib.staticfiles.storage import staticfiles_storage
from . import views
urlpatterns = [
path('favicon.ico', RedirectView.as_view(url=staticfiles_storage.url('author\logos\media'))),
path('', views.home_view_pa, name='developer-home'), # my-domain.com/pa_pe_developer
path('all-essays', views.all_essays, name='all-essays'), # my-domain.com/pawerl_pe_developer FOR ALL ESSAYS
path('<slug:slug>/success', views.confirm_registration, name='confirm-registration'),
path('<slug:slug>', views.MyEssaysView.as_view(), name='essay-path'),
path('read-later', views.ReadLaterView.as_view(), name='read-later')
]
Мой models.py:
class EssayCls(models.Model):
title = models.CharField(max_length=200)
organizer_email = models.EmailField(null=True)
date = models.DateField(null=True)
slug = models.SlugField(unique=True, db_index=True)
description = models.TextField(validators = [MinLengthValidator(10)])
details = models.TextField()
image = models.ImageField(upload_to='images')
video = models.ForeignKey(VideoObject, blank=True, null=True, on_delete=models.SET_NULL, related_name="video_obj")
language = models.ForeignKey(ProgLang, null=True, on_delete=models.SET_NULL)
guest = models.ManyToManyField(SendMeMessage, blank=True)
tags = models.ManyToManyField(Tag)
def __str__(self):
return f"{self.title}"
class Meta:
verbose_name = "My Essay"
мой шаблон:
<div id="read-later">
<form action="{% url 'read-later' %}" method="POST">
{% csrf_token %}
<input type="hidden" value="{{ essay_all.id }}" name="post_id">
<button>
{% if saved_for_later %}
Remove from "Read Later" List
{% else %}
Read Later
{% endif %}
</button>
</form>
</div>
Вывод оболочки сервера:
Traceback (most recent call last):
File "C:\Users\b2b\venv\lib\site-packages\django\core\handlers\exception.py", line 55, in inner
response = get_response(request)
File "C:\Users\b2b\venv\lib\site-packages\django\core\handlers\base.py", line 197, in _get_response
response = wrapped_callback(request, *callback_args, **callback_kwargs)
File "C:\Users\b2b\venv\lib\site-packages\django\views\generic\base.py", line 103, in view
return self.dispatch(request, *args, **kwargs)
File "C:\Users\b2b\venv\lib\site-packages\django\views\generic\base.py", line 142, in dispatch
return handler(request, *args, **kwargs)
File "C:\Users\b2b\django_my_page_author\author_developer\views.py", line 197, in post
post = EssayCls.objects.get(slug=slug)
File "C:\Users\b2b\venv\lib\site-packages\django\db\models\manager.py", line 85, in manager_method
return getattr(self.get_queryset(), name)(*args, **kwargs)
File "C:\Users\b2b\venv\lib\site-packages\django\db\models\query.py", line 650, in get
raise self.model.DoesNotExist(
author_developer.models.EssayCls.DoesNotExist: EssayCls matching query does not exist.
Internal Server Error: /read-later
Traceback (most recent call last):
File "C:\Users\b2b\venv\lib\site-packages\django\core\handlers\exception.py", line 55, in inner
response = get_response(request)
File "C:\Users\b2b\venv\lib\site-packages\django\core\handlers\base.py", line 197, in _get_response
response = wrapped_callback(request, *callback_args, **callback_kwargs)
File "C:\Users\b2b\venv\lib\site-packages\django\views\generic\base.py", line 103, in view
return self.dispatch(request, *args, **kwargs)
File "C:\Users\b2b\venv\lib\site-packages\django\views\generic\base.py", line 142, in dispatch
return handler(request, *args, **kwargs)
File "C:\Users\b2b\django_my_page_author\author_developer\views.py", line 197, in post
post = EssayCls.objects.get(slug=slug)
File "C:\Users\b2b\venv\lib\site-packages\django\db\models\manager.py", line 85, in manager_method
return getattr(self.get_queryset(), name)(*args, **kwargs)
File "C:\Users\b2b\venv\lib\site-packages\django\db\models\query.py", line 650, in get
raise self.model.DoesNotExist(
author_developer.models.EssayCls.DoesNotExist: EssayCls matching query does not exist.
[02/Feb/2023 15:09:34] "POST /read-later HTTP/1.1" 500 92898