python - /edit/3 处的 ValueError 视图 main_panel.views.edit 未返回 HttpResponse 对象。它返回 None 而不是
问题描述
我正在尝试向我的项目添加一个编辑按钮并给我一个错误。
以下代码是我的views.py文件。
def edit(request, list_id):
if request.method == 'POST':
item = List.objects.get(pk=list_id)
form = ListForm(request.POST or None, instance=item)
if form.is_valid():
form.save()
return redirect('home')
else:
item = List.objects.get(pk=list_id)
return render(request, 'main_panel/edit.html', {'item': item})
这是我的edit.html,
{% extends 'main_panel/base.html' %}
{% block content %}
{% if item %}
<form class="form-inline my-2 my-lg-0" method="POST">
{% csrf_token %}
<input type="search" value="{{ item.name }}" name="name">
<input type="search" value="{{ item.choice_field }}" name="choice_field">
<input type="search" value="{{ item.product }}" name="product">
<input type="search" value="{{ item.avans }}" name="avans">
<input type="search" value="{{ item.total_price }}" name="total_price">
<input type="search" value="{{ item.status }}" name="status">
<button type="submit">Kaydet</button>
</form>
{% endif %}
{% endblock %}
这是我的urls.py,
from django.urls import path
from . import views
urlpatterns = [
path('', views.home, name='home'),
path('add/', views.add, name='add'),
path('delete/<list_id>', views.delete, name='delete'),
path('edit/<list_id>', views.edit, name='edit')
]
这给了我以下错误:
/edit/3 处的 ValueError 视图 main_panel.views.edit 未返回 HttpResponse 对象。它返回 None 。
当我在编辑数据后单击提交按钮时,它给了我错误。感谢任何帮助。谢谢你。
解决方案
如果您的视图收到 POST 请求并且表单无效,则该函数不会执行显式 return 语句并返回默认值None
.
我建议你看看这个例子:https ://docs.djangoproject.com/en/2.1/topics/forms/#the-view
看看最后一行是如何成为 GET 请求的默认返回语句而不是有效的 POST 请求。
推荐阅读
- scala - 向 Sentry Logback 添加挂钩以清理数据
- azure - 在 Kusto 中使用联合和循环运算符将多个表合并为一个表
- excel - 我们如何使用 oledb 使用长度超过 256 个字符的字符串更新 excel 中的单元格
- sql-server - SQL Server SQL Query中的Excel四分位函数
- javascript - Chrome 扩展程序:从弹出窗口访问选项卡
- javascript - 即使刷新或删除,如何在 html 中保持相同的内容
- arrays - Excel:创建一个包含 n 次出现值 x 的数组
- java - 如何通过按键在两个数字之间切换?
- php - 我想将 Array 转换为 stdobject
- javascript - 如何在 Vue Datepicker 中禁用当前日期前最多 14 天的所有日期?