Для двух ошибок при обновлении просмотра, Django

Сначала я запишу код и объясню его ниже.

views.py

class comment_update(UpdateView):
model = Comment
fields = '__all__'
# success_url = reverse_lazy('board')

def get(self, request, pk):
    com = Comment.objects.filter(id=pk)
                  
    return render(self.request, 'comment_edit.html',{
        'com' : com
    })
    
def get_success_url(self):
    return reverse('board_detail', kwargs={'pk':self.object.board.pk})

urls.py

path('board/comment/<int:pk>/update/', views.comment_update.as_view(), name="comment_update")

шаблон

<form action="{% url 'comment_update' i.id %}">

Если я не использую поля в ситуации, как в приведенном выше коде,

Возникает ошибка A. При использовании полей возникает ошибка B. В случае B, почему не работает success_url и get_sufficiency_url?

A Неправильно настроено в /board/comment/4/update/ Использование ModelFormMixin (базовый класс comment_update) без атрибута 'fields' запрещено.

B TemplateDoesNotExist at /board/comment/4/update/ board/comment_form.html

Вы, по сути, обходите всю встроенную в Django функциональность UpdateView, переопределяя get.

Не делай этого, ты калечишь себя.

class CommentUpdateView(UpdateView):
    model = Comment
    fields = '__all__'
    context_object_name = 'com'
    
    def get_success_url(self):
        return reverse('board_detail', kwargs={'pk':self.object.board.pk})

Достаточно иметь в наличии следующие контекстные переменные:

{% form.as_p %}
{% com %} <-- this is your object (or use 'object')

Также проверьте документацию: https://docs.djangoproject.com/en/3.2/ref/class-based-views/generic-editing/#updateview

Магия, которая добавляет ваш объект в контекст: https://docs.djangoproject.com/en/3.2/ref/class-based-views/mixins-single-object/#singleobjectmixin - или взгляните на его исходный код, это не слишком сложно.

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