首页 > 解决方案 > 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 %}



标签: pythondjango

解决方案


您必须删除args=[patiend_id],因为您要返回 ipd_list

return HttpResponseRedirect(reverse('ipd_list'))

推荐阅读