Django: преобразование функции представления в представление на основе класса. Ошибка при входе в панель администратора: соответствующий запрос не существует

Я учусь преобразовывать старые функции view.py в представления на основе классов.

Я начал с простой функции, которая отображала страницу с моими эссе, плюс у меня была форма newsletter form и проект формы comment form (но не привязанный к DB). Я решил не развивать эту форму комментариев дальше в простой функции, а перестроить всю ее на class-based view, чтобы изучить лучший и более чистый подход.

Я столкнулся с проблемой, которую понятия не имею, как решить. Ошибка: соответствующий запрос не существует. И Exception Value: EssayCls matching query does not exist. Скорее всего, я нарушаю логику, которая соединяет мою модель с моей БД.

Я ищу предложения о том, как решить проблемы в моем коде, и предложения по темам, о которых я должен узнать больше, чтобы сделать этот вид разработки менее обременительным.

До того, как я перестроил свое представление, все работало нормально и выглядело следующим образом:

views.py:

models.py:

class Tag(models.Model):
    caption = models.CharField(max_length=100)
    
    def __str__(self):
        return self.caption

    class Meta:
        ordering = ['caption']


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(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") # One-to-many relationship
    language = models.ForeignKey(ProgLang, null=True, on_delete=models.SET_NULL) # One-to-many relationship
    guest = models.ManyToManyField(SendMeMessage, blank=True)
    tags = models.ManyToManyField(Tag)
    
    class Meta:
        verbose_name = "My Essay"
    
class Comment(models.Model):
    user_name = models.CharField(max_length=120)
    user_email = models.EmailField() 
    text = models.TextField(max_length=2300)
    post = models.ForeignKey(
                            EssayCls, 
                            on_delete=models.CASCADE, 
                            related_name="comments"
                            )

forms.py:

class UserFeeDBack(forms.Form):
    email = forms.EmailField(label='Your email') # 'Your email' is html label form templates.


class CommentForm(forms.ModelForm):
    class Meta:
        model = Comment
        exclude = ["post"]
        labels = {
            "user_name": "Your name",
            "user_email": "Your email",
            "text": "Your Comment"
        }

После того, как я хэшировал (в views.py) свою старую функцию my_essays и преобразовал ее в представление на основе класса MyEssaysView. На данный момент это выглядит следующим образом:

Журнал ошибок:

Вернуться на верх