繁体   English   中英

Django 如何在不刷新或重新加载页面的情况下插入数据

[英]Django How do i Insert data without refreshing or reloading page

在用户插入数据后如何在 Django 中返回当前页面(request.post)

设想:

如果教师插入学生的成绩,当前页面将重新加载或刷新

我不知道我是否可以通过使用重定向来实现它。

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')

网址.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,但仍然出现此错误

如果您想在表单成功提交后重定向到同一页面,请返回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})
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')

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM