python - Django url 错误“NoReverseMatch at /2/ipd/”
问题描述
我有创建 Ipd 的表格,而 Ipd 模型是使用具有一对多关系的患者模型创建的,并且我已经在 url 中有一个带有患者列表的表格。我正在尝试创建使用表单创建的所有 Ipd 的列表,我在提交 Ipd 表单后尝试将表单页面重定向到 Idp 列表,但以此错误“NoReverseMatch at /1/ipd/”结束,
我要澄清的一件事是每个 Ipd 都有唯一的 id 并且 Ipd 是由具有一对多关系的患者创建的,该关系也有另一个唯一的 id ,错误中的数字是患者 id
视图.py
@login_required
def ipd(request, patient_id):
object = get_object_or_404(Patient,pk=patient_id)
if request.method == "POST":
formtwo = IpdForm(request.POST)
if formtwo.is_valid() :
instance = formtwo.save(commit=False)
instance.save()
return HttpResponseRedirect(reverse('ipd_list', args=[patient_id]))
else:
return HttpResponse(formtwo.errors)
else:
formtwo = IpdForm()
return render(request, 'newipd.html', {'object':object, 'form2': formtwo})
@login_required
def ipd_list(request):
ipdlist = Ipd.objects.all()
return render(request, 'Ipdlist.html', {'ipd': ipdlist })
网址.py
re_path(r'^$', my_patient.index, name='home'), <-- patient list-->
re_path(r'^(?P<patient_id>\d+)/ipd/$', my_patient.ipd, name='ipd'),
path(r'^ipdlist/', my_patient.ipd_list,name='ipdlist' ),
模板
<ul>
<li><a href="{% url 'ipdlist' %}" ><span class="title">Indoor Patient Department</span></a></li>
</ul>
########
in ipdform
<form class="col s12" role="form" action="{% url 'ipd_list' 'patient_id' %}" method="post" enctype="multipart/form-data"> {% csrf_token %}
解决方案
您必须删除args=[patiend_id]
,因为您要返回 ipd_list
return HttpResponseRedirect(reverse('ipd_list'))
推荐阅读
- python - 根据其他重复值选择要保留的列表中的值
- javascript - 我可以为每次使用而不是首次使用使用是或现在弹出框吗?
- python - 检查列表中的一项是否在列表列表中
- swift - 以编程方式将 onlick 事件添加到 NSView 而无需子类化
- c++ - 带有 if 语句的嵌套循环的时间复杂度
- c# - 尝试编写一个单元通过处理电子邮件的 SendGrid 测试一个天蓝色函数
- node.js - 如何为我的应用程序创建本地数据库?
- class - 从 Kotlin 中不为空的数据类中获取所有属性
- python - 从 s3 存储桶加载 XGBoost
- r - R ggplot 实际值和具有图例的同一图中的多个模拟点