我正在创建Django web应用程序,用于额外的支付,如轮班津贴等,我收到了HttpResponse错误



我正在创建Django web应用程序,用于额外的支付,如轮班津贴等,我在同一个应用程序下创建了多个应用程序,如果其中一个是轮班应用程序,在这个应用程序中,用户将提交轮班详细信息,经理将批准它,在这里,当经理试图批准用户的轮班详细信息时,我遇到了错误

值在/shift/6时出错/视图shift.views.update_status未返回HttpResponse对象。它返回None。请求方式:POST请求URL:http://127.0.0.1:8000/shift/6/Django版本:3.2.5异常类型:ValueError异常值:
视图shift.views.update_status未返回HttpResponse对象。它返回None。异常位置:C:\Users\vikasdange\Anaconda3\lib\site packages\django\core\handlers\base.py,第309行,在check_response中Python可执行文件:C:\Users\vikasdange\Anaconda3\Python.exePython版本:3.9.7Python路径:
['C:\Users\vikasdange\django\additional_payments','C:\Users\vikasdange\Anaconda3\python39.zip','C:\Users\vikasdange\Anaconda3\DLLs',"C:\Users\vikasdange\Anaconda3\lib",'C:\Users\vikasdange\Anaconda3',"C:\Users\vikasdange\Anaconda3\lib\site软件包","C:\Users\vikasdange\Anaconda3\lib\site-packages\locket-0.2.1-py3.9.egg","C:\Users\vikasdange\Anaconda3\lib\site packages\win32","C:\Users\vikasdange\Anaconda3\lib\site packages\win32\lib",'C:\Users\vikasdange\Anaconda3\lib\site packages\Pythonwin']服务器时间:2022年7月23日星期六12:38:22+0000项目名称additional_payments

项目additional_payments urls.py文件

urlpatterns = [
path('', include('login.urls')),
path('admin/', admin.site.urls),
path('ot/', include('ot.urls')),
path('oncall/', include('oncall.urls')),
path('shift/', include('shift.urls')),
path('accounts/', include('accounts.urls')),     
]

app-shift-urls.py文件

urlpatterns = [

path("shift", views.shift,name="shift"),
path("<int:id>/", views.update_status,name="update_status"),
path("shift_details/", views.shift_details,name="shift_details"),
]

应用程序转移视图.py文件

def shift_details(request):
sdetails = Shift.objects.all()  
return render(request, 'shift_details.html', {'details':sdetails})

defupdate_status(request,id(:

if request.method == 'POST':
ar_status = Shift.objects.get(pk=id)
fm = shiftforms(request.POST,ar_status)
if fm.is_valid():
fm.save()
return redirect('/')
else:
ar_status=Shift.objects.get(id=id)
fm = shiftforms(instance=ar_status)
return render(request, "update.html", {"Shift":ar_status})

update.html文件

{% extends 'base.html' %}
{% block content %}
<h4>Approve Reject Request</h4>
<form action="" method="post">
{% csrf_token %}
{{form.as_p}}
<table border="1">
<tr>
<td>Employee ID</td>
<td><input type="text" name="id" value="{{Shift.id}}" readonly></td>

</tr>
<tr>
<td>Approval Status</td>
<td><input type="text" name="status" value="{{Shift.status}}" ></td>

</tr>
</table>
<input type="submit" value="Update">
<a href="{% url 'shift_details' %}">Back To Home</a>
</form>
{% endblock content %}

如果表单无效,则没有其他内容。如果表单无效,它应该呈现带有表单错误的模板,如(并检查ar_status对象是否存在(:

def update_status(request, id):
try:
ar_status = Shift.objects.get(pk=id)
except ObjectDoesNotExist:
print('There is no shift object with this id')
return redirect('/')
if request.method == 'POST':

fm = shiftforms(request.POST, instance=ar_status)
if fm.is_valid():
fm.save()
return redirect('/')
else:
print(fm.errors)
else:
ar_status=Shift.objects.get(id=id)
fm = shiftforms(instance=ar_status)
return render(request, "update.html", {"Shift":ar_status, "form": fm})

请注意,带有render的retun不再是else语句的一部分。

相关内容

最新更新