Возможно ли перенаправление на другую страницу с id предыдущей страницы?
Как вы можете видеть, на странице у меня есть название магазина и его адрес. Более того, у меня есть функция редактирования на views.py:
def update_shop(request, id):
context = {}
# * fetch the object related to passed id
obj_shop = get_object_or_404(VideoLibrary, id=id)
# * pass the object as instance in form
form_shop = VideoLibraryForm(request.POST or None, instance=obj_shop)
# * save the data from the form and
# * redirect to detail_view
if form_shop.is_valid():
form_shop.save()
return HttpResponseRedirect('/main/')
context['form_shop'] = form_shop
return render(request, 'update/update_shop.html', context)
urls.py:
...
path('list_view/', views.list_view, name='list_view'),
path('shop/<id>/update', views.update_shop, name='update_shop'),
Изображение находится на другой странице ('lilst_view') и проблема в том, что мне нужно разместить кнопку на этой странице и перенаправить на страницу обновления, чтобы, например, отредактировать названия некоторых магазинов. Для этого, как я предполагаю, мне нужно каким-то образом получить id объекта. Кто-нибудь знает, как это сделать?
в этом случае вы можете сделать это в Django, просто используя метод redirect() с параметрами, например
return redirect('some-view-name', parameter_name='par_value')
и в теге a поместить <a href={% url 'view_name' desired_id %}
#list_view.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Document</title>
</head>
<body>
<div class="main">
{% for data in library_dataset %}
Shop name:
<br />
<br />
{{ data.shop_name }} <br />
{{ data.adress }} <br />
<td><a href="{% url 'update_shop' data.id %}">
<button type="button" class="btn btn-primary">Edit Shop Details</button>
</a>
</td>
{% endfor %}
</div>
</body>
</html>
