如何在用户插入数据(request.post)后在django中返回当前页面
设想情况:
如果教师插入学生的成绩,则当前页面将重新加载或刷新。
我不知道我是否可以通过使用重定向来实现它。
def grades(request):
V_insert_data = StudentSubjectGrade(
...
)
V_insert_data.save()
//redirect the same page
def teacher(request):
if request.method != 'POST':
raise Http404('Only POSTs are allowed')
try:
......
return render(request, 'Homepage/index.html')
except EmployeeUser.DoesNotExist:
messages.warning(request, 'Your Username and password are Incorrect.')
….
return render(request, 'Homepage/TeacherLogin.html')urls.py
path('teacher/', Homepage.views.teacher, name='teacher'),
path('grades/', Homepage.views.grades, name='grades'),这就是我所犯的错误

更新
当我改变我的
response = redirect(teacher)
return response到这个
return redirect(reverse('teacher'))我得到了同样的结果
再次更新
当我尝试这个
def grades(request):
V_insert_data = StudentSubjectGrade(
...
)
V_insert_data.save()
return HttpResponseRedirect(request.path_info)我知道这个错误

我已经清除了我的cookie,但是仍然会出现这个错误。
发布于 2020-03-16 16:55:35
如果要在表单成功提交后重定向到同一页,请返回HttpResponseRedirect。让我在这里给出一个样本
from django.http import HttpResponseRedirect
def grades(request):
if request.method == 'POST':
# do your stuff here (saving data to db)
return HttpResponseRedirect(request.path_info)
return render(request, template, {'form': your_form})发布于 2020-03-16 16:31:24
def grades(request):
V_insert_data = StudentSubjectGrade(
...
)
V_insert_data.save()
return redirect(reverse('teacher'))
def teacher(request):
if request.method == 'POST':
try:
......
return render(request, 'Homepage/index.html')
except EmployeeUser.DoesNotExist:
messages.warning(request, 'Your Username and password are Incorrect.')
….
return render(request, 'Homepage/TeacherLogin.html')https://stackoverflow.com/questions/60566742
复制相似问题