Я хотел бы реализовать UpdateView для обновления выбранных объектов моей модели.
В настоящее время у меня есть:
views.py
def fd_detail(request, fdslug):
fddetail = Fd.objects.get(slug=fdslug)
cffilter = CashFlowFilter(request.GET, queryset=CashFlow.objects.filter(feeder__slug=fdslug))
return render(request, 'fd/fd_detail.html',
{'fddetail': fddetail,
'cffilter': cffilter,
})
class CashFlowUpdate(UpdateView):
model = CashFlow
fields = ['amount', 'description']
url.py
path('<slug:fdslug>/updatecashflow/', views.CashFlowUpdate.as_view(),name = "update_cashflow"),
path('<slug:fdslug>/', views.fd_detail, name="fd_detail")
update_cashflow.html
<form method="post">
{% csrf_token %}
{{ form.as_p }}
<input type="submit" value="Update">
</form>
Я получаю следующую ошибку: «Общий подробный вид CashFlowUpdate должен вызываться либо с объектом pk, либо слизнем в URLconf»., что означает, что мне нужно передать первичный ключ объекта, который я хочу обновить ... Каков наилучший способ сделать это?В настоящее время все мои объекты отображаются в виде таблицы (см. Ниже)?Я мог бы добавить столбец с URL-ссылкой "Изменить", но как поставить ПК в нем?
<table class="table table-bordered">
<thead>
<tr>
<th>Amount</th>
<th>Description</th>
<th>Edit</th>
</tr>
</thead>
<tbody>
{% for cashflow in cffilter.qs %}
<tr>
<td> {{cashflow.amount}} </td>
<td> {{cashflow.description}} </td>
<td> ?????? </td>
</tr>
{% empty %}
<tr>
<td colspan="5"> No cashflow matches your search criteria</td>
</tr>
{% endfor %}
</tbody>
</table>
большое спасибо