【发布时间】:2018-02-14 18:53:32
【问题描述】:
尝试通过 url 分派将两个变量从我的模板分派到我的视图时出现以下错误。我不明白为什么找不到网址。这是我整个代码的一个 sn-p,但我很确定问题出在下面。这是在我的项目中的应用程序中
NoReverseMatch at /home/patientid=1002411102/clinicid=1007/
Reverse for 'patient_summary' with no arguments not found. 1 pattern(s) tried: ['home/patientid=(?P<patient_id>\\d+)/clinicid=(?P<clinic_id>\\d+)/$']
index.html
<tbody>
{% for patient in patients %}
<tr class="gradeX">
<td>{{patient.PatientID}}</td>
<td>{{patient.ClinicID}}</td>
<td>{{patient.PatientFirstName}}</td>
<td>{{patient.PatientMidName}}</td>
<td>{{patient.PatientLastName}}</td>
<td>{{patient.PatientDOB}}</td>
<td>40/30</td>
<td>192</td>
<td>100</td>
<td>70</td>
<td>23m</td>
<td style="color:red">Abnormal</td>
<td><a style="color:#4A90E2; cursor: pointer" href="{% url 'home:patient_summary' patient_id=patient.PatientID clinic_id=patient.ClinicID %}">View/Edit</a></td>
</tr>
{% endfor %}
</tbody>
urls.py
from django.conf.urls import url
from home import views
app_name = 'home'
urlpatterns = [
url('^$', views.index, name='index'),
url('patientid=(?P<patient_id>\d+)/clinicid=(?P<clinic_id>\d+)/$', views.patient_summary, name='patient_summary'),
]
views.py
from django.shortcuts import render
from django.http import HttpResponse
from django.template.context_processors import request
from django.contrib.auth.decorators import login_required
import requests
import json
@login_required
def index(request):
payload = {"ClinicId":"1007"}
r = requests.post("https://hidden", data=payload)
jsonList = r.text
data = json.loads(jsonList)
# print(data[0]["PatientID"])
patients = []
for patient in data:
patients.append(patient)
my_dict = {'patients': patients, 'homeIsActive': 'active'}
return render(request, 'home/index.html', my_dict)
def patient_summary(request, patient_id, clinic_id):
my_dict = {'homeIsActive': 'active', 'chartData': [[0,1],[1,1],[2,1]]}
return render(request, 'home/patient_summary.html', my_dict)
用于基础项目的 urls.py
from django.contrib import admin
from django.urls import path
from django.conf.urls import include
from django.conf.urls import url
from login import views as login
from home import views as home
from enrollment import views as enrollment
from inventory import views as inventory
urlpatterns = [
url('^$', login.user_login, name='login'),
url('^logout/', login.user_logout, name='logout'),
url('^home/', include('home.urls')),
url('^enrollment/', enrollment.index, name ='enrollment'),
url('^inventory/', inventory.index, name ='inventory'),
# url('^settings/', settings.index, name='settings'),
url('^settings/', include('settings.urls')),
path('admin/', admin.site.urls),
]
【问题讨论】:
-
错误与您的代码不匹配;请发布实际的模板和视图,以及索引视图。此外,这真的不是你在 Django 中定义 URL 的方式。
-
我只发布了相关的sn-ps。如果我复制所有内容,帖子将太长。我包括了索引视图。我没有使用路径,但代码工作正常,除了发布的错误。 url应该如何声明
-
我没有要求“一切”,我要求的是证明问题的实际代码;这显然不是。即使由于某种原因,患者 ID 和诊所 ID 为空白,错误也会这样说,而不是说您没有传递任何参数。
标签: python django django-templates django-views