我有一个观点
(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'),)
我的观点.UserDetailView
class UserDetailView(DetailView):
model = UserData
context_object_name = 'user_detail'
template_name = 'user_detail.html'
如( UserView(request) ) 中的代码所示,我尝试过“返回重定向('detail', pk=user.pk) ” 这不起作用。
另外请告诉我是否有更简洁、更有效的方法可以执行以下操作 ( UserView(request) ) 当在 ( user_list.html ) 中单击按钮时,然后从“UserView”重定向到 ((path('detail//', views.UserDetailView.as_view(), name='detail'),) )
最佳答案
使用重定向时您错过了应用程序名称 myapp
:
return redirect('myapp:detail', pk=user.pk)
关于django - 使用views.py中的主键重定向,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59682311/