У меня есть представление
(user_list.html)
{% extends "base.html" %}
{% load static %}
{% block content %}
<div class="list_main">
<div class="container">
{% for user in user_list %}
<ul>
<li><a href="{% url 'myapp:detail' pk=user.pk %}">
<div class="jumbotron">
<h4 class="list_content">{{user.name}}</h4>
</div>
</a></li>
</ul>
{% endfor %}
<div class="bttn">
<p><a type="button" class="btn btn-primary" href="{% url 'myapp:user' %}">Add</a></p>
</div>
</div>
</div>
{% endblock %}
Здесь с помощью
<p><a type="button" class="btn btn-primary" href="{% url 'myapp:user' %}">Add</a></p>
Я звоню (views.py -> UserView)
def UserView(request):
response = requests.get('https://randomuser.me/api')
data = response.json()
title = data['results'][0]['name']['title']
first = data['results'][0]['name']['first']
last = data['results'][0]['name']['last']
final_name = " ".join([first,last])
#############################################
final_name = ". ".join([title, final_name]) #Final name of the user
#############################################
agee = data['results'][0]['dob']['age'] # age of the user
user = UserData.objects.create( name = final_name, age= agee, gender = gender)
user.save()
return redirect('detail', pk=user.pk) #This is not working
то, что я хочу сделать, это всякий раз, когда нажимается кнопка из шаблона (user_list. html). Я хочу ввести эту функцию в моем файле views.py, выполнить операции и перенаправить на
(path('detail/<int:pk>/', views.UserDetailView.as_view(), name='detail'),)
Мои views.UserDetailView
class UserDetailView(DetailView):
model = UserData
context_object_name = 'user_detail'
template_name = 'user_detail.html'
Как показано в коде в (UserView (запрос )), Я попытался «вернуть редирект (« detail », pk = user.pk)», это не работает.
Также скажите, пожалуйста, есть ли более аккуратный и эффективный способ для выполнения операций, представленных в (UserView (запрос)), когда кнопка нажата (user_list. html), а затем перенаправлена из «UserView» в ((путь ('detail //', views.UserDetailView.as_view (), name = 'detail') ))