Пополнение значений формы из базы данных 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
.