找不到带有关键字参数'{'pk':''}'的'Patient_update'。尝试了1个模式:['患者/更新/(?P <pk> [0-9] +)$']?

时间:2019-07-07 17:17:19

标签: django django-templates django-views

我创建了一个视图,用户可以在其中编辑患者信息,并且当我使用自定义用户模型时,我必须创建一个自定义更新/删除视图。当我通过url手动输入视图时,这些视图才起作用。通过锚标记放置对它们的链接引用我收到了无法访问pk的错误,我尝试在此处遵循以下多个答案并在YT上显示vid,但错误仍然存​​在

Views.py

def PatientUpdateView(request,pk=None):

    patient = get_object_or_404(models.Patient, pk=pk)
    form = forms.PatientForm(request.POST or None ,instance=patient)
    if form.is_valid() :
        patient = form.save(commit=False)
        patient.save()
        messages.success(request,"patient updated!")
        context = {
            'patient': patient,
            'form': form
        }
        return render(request,'patients/patient_edit_form_success.html',context)
    else:
        context = {
            'patient' : patient,
            'form': form,
                   }
        return render(request, 'patients/patient_edit_form.html', context)

这是我在锚标记中的称呼方式

 <a class="btn btn-info btn-sm" href="{% url 'patients:patient_update' patient.pk %}">Open</a>

我尝试了

pk = patient.pk
pk = pk 

以及其他许多调用方式。

urls.py  这是我使用的网址格式

    path('update/<int:pk>', views.PatientUpdateView, name='patient_update'),

1 个答案:

答案 0 :(得分:0)

尝试将<a>标签更改为以下内容:

<a class="btn btn-info btn-sm" href="{% url 'patient_update' patient.pk %}">Open</a>

提供网址名称时,无需名称间隔。另外,请记住在模板文件中{% load static %}