В PostUpdateView отсутствует QuerySet. Определите PostUpdateView.model, PostUpdateView.queryset или переопределите PostUpdateView.get_queryset()

я пытаюсь отредактировать ответ (сообщение), сделанный пользователем на сайте, но при нажатии кнопки редактирования вместо того, чтобы перевести меня на страницу для редактирования, он выдает мне эту ошибку:

В PostUpdateView отсутствует QuerySet. Определите PostUpdateView.model, PostUpdateView.queryset или переопределите PostUpdateView.get_queryset().

urls.py:

path('boards/<int:board_id>/topics/<int:topic_id>/posts/<int:post_id>/edit/', views.PostUpdateView.as_view(), name='edit_post'),

views.py: мое приложение называется firstapp

from os import name
from django.db.models.base import Model
from django.shortcuts import render,redirect,get_object_or_404
from django.http import HttpResponse, response
from firstapp.models import Board
from django.contrib.auth.models import User
from firstapp.models import Topic,Post
from django.views.generic import UpdateView
from django.utils import timezone

class PostUpdateView(UpdateView):
    Model = Post
    fields = ('message',)
    template_name = 'edit_post.html'
    pk_url_kwarg = 'post_id'
    context_object_name = 'post'
    
    def form_valid(self, form):
        post = form.save(commit=False)
        post.updated_by = self.request.user
        post.updated_dt = timezone.now()
        post.save()
        return redirect ('topic_posts',board_id=post.topic.board.pk,topic_id=post.topic.pk)

models.py:

class Board(models.Model):
    name = models.CharField(max_length=50,unique=True)
    description = models.CharField(max_length=150)
    
    def __str__(self):
        return self.name
    
    def get_posts_count(self):
        return Post.objects.filter(Topic__board=self).count()

    def get_last_post(self):
        return Post.objects.filter(Topic__board=self).order_by('-created_dt').first()

class Topic(models.Model):
    subject = models.CharField(max_length=255)
    board = models.ForeignKey(Board,related_name='topics',on_delete=models.CASCADE)
    created_by = models.ForeignKey(User,related_name='topics',on_delete=models.CASCADE)
    created_dt = models.DateTimeField(auto_now_add=True)
    views = models.PositiveIntegerField(default=0)
    updated_by = models.ForeignKey(User,null=True,related_name='+',on_delete=models.CASCADE)
    updated_dt = models.DateTimeField(null=True)
    
    def __str__(self):
        return self.subject

class Post(models.Model):
    message = models.TextField(max_length=4000)
    Topic = models.ForeignKey(Topic,related_name='posts',on_delete=models.CASCADE)
    created_by = models.ForeignKey(User,related_name='posts',on_delete=models.CASCADE)
    created_dt = models.DateTimeField(auto_now_add=True)
    updated_by = models.ForeignKey(User,null=True,related_name='+',on_delete=models.CASCADE)
    updated_dt = models.DateTimeField(null=True)
    
    def __str__(self):
        truncated_message= Truncator(self.message)
        return truncated_message.chars(30)

edit_post.html:

{% extends 'base.html' %}
{% load widget_tweaks %}

{% block title %} edit Post {% endblock %}

{% block breadcrumb %}
    <li><a href=" {% url 'home' %}">boards</a></li>
    <li><a href=" {% url 'board_topic' post.topic.board.pk %} ">{{post.topic.board.name}}</a></li>
    <li>{{board.description}}</li>
    <li>edit Post</li>
{% endblock %}

{% block content %}
<form method="POST" novalidate>
    {% csrf_token %}
    {% include 'includes/form.html'%}
    <button type="submit">Save changes</button>

</form>
{% endblock %}
Вернуться на верх