我在Django中使用重定向将用户发送到另一个页面,但它无法这样做。
views.py
def func1(request):
if not request.user.is_authenticated():
return render(request, 'login/login/login.html')
else:
if request.method == "POST":
return redirect('base:func2')
return render(request, 'base/home/index.html')
def func2(request):
if not request.user.is_authenticated():
return render(request, 'login/login/login.html')
else:
if request.method == "POST":
....
return render(request,
'bla_bla_bla.html',
{'location': location})
elif request.method == 'GET':
print('COntrol is here')
some_details_form = SomeDetailsForm()
return render(request, 'some_url/index.html',
{'some_details_form': some_details_form})
urls.py
app_name = 'base'
url(r'^another_url/$', views.func2, name='func2'),
url(r'^some_url/$', views.func1, name='func1'),
碱/家庭/ index.html中
<div class="button" onclick="clicked_it()">
<span id="forward"> Go Further </span>
</div>
index.js
function clicked_it()
{
$.post( "/base/some_url/");
};
所以控件确实转到 func2 ,因为我可以看到打印语句输出 COntrol在这里 但是我没有看到func2能够在return语句中呈现页面。控件在哪里卡住了?
答案 0 :(得分:1)
使用Ajax的重点在于它覆盖了浏览器导航处理。如果您希望Ajax重定向,则需要在js中执行 - 或者,根本不使用Ajax。
答案 1 :(得分:0)
重定向需要您需要重定向到的相对或绝对网址。 你需要使用django反向URL解析器
public class Account
{
public int Id { get; set; }
public string Username { get; set; }
public string PasswordHash { get; set; }
public DateTime Created { get; set; }
List<User> Users { get; set; }
}
public class User
{
public int Id { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
public string Email { get; set; }
public DateTime Birthday { get; set; }
public Account Account { get; set; }
}