Пополнение значений формы из базы данных Django

Я пытаюсь получить данные из базы данных для обновления и сохранения. Я могу добавлять данные. Поскольку я пытаюсь сделать это в представлении класса, я не знаю, как использовать generic. Update view и получить запись по id. Вот FormView, который я использую для отправки данных

class CompanyView(generic.FormView):
    form_class = CompanyForm
    template_name = 'company/company.html'
    
    success_url = '/company'

    def form_valid(self, form):
        form.save()
        return super().form_valid(form)

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

Как я могу изменить это, чтобы сделать правку?

Если вы указываете шаблон URL, который содержит поле с именем pk:

from app_name.views import CompanyUpdateView

urlpatterns = [
    path('edit/<int:pk>/', CompanyUpdateView.as_view(), name='company-update')
]

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

from django.views.generic import UpdateView

class CompanyUpdateView(UpdateView):
    model = Company
    form_class = CompanyForm
    template_name = 'company/company.html'
    success_url = '/company'

Это представление будет извлекать соответствующие Company из базы данных, заполнять форму данными и при POST-запросе обновлять соответствующие Company.

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