簡體   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