2017-07-26 153 views
1

我正在处理的Django项目列出患者详细信息并让用户编辑详细信息。我已经能够列出它,但views.py没有链接到更新列表的URL。Django编辑模型实例

views.py

def update_patient(request, patient_id): 
     patient = Patient.objects.get(id=patient_id) 
     if request.method != 'POST': 
      form = PatientForm(instance=patient) 
     else: 
      # POST data submitted; process data. 
      form = PatientForm(instance=patient, data=request.POST) 
      if form.is_valid(): 
       form.save() 
       return HttpResponseRedirect(reverse('patient:patient', 
              args=[patient.id])) 
    context = { 'patient': patient, 'form': form} 
    return render(request, 'patient/update_patient.html', context) 

models.py

class Patient(models.Model): 
     patientID = models.CharField(max_length=20) 
     firstName =models.CharField(max_length=20) 
     lastName = models.CharField(max_length=20) 
     age = models.IntegerField(max_length=None) 
     SSN = models.CharField(max_length=15) 
     address = models.CharField(max_length=200) 
     date_added = models.DateTimeField(auto_now_add=True) 

urls.py

url(r'^patients/(?P<patient_id>\update\d+)/$', views.update_patient, name='update'), 

update_patient.html

{% extends "patient/base.html" %} {% block content %} 
    <p><a href="{% url 'patient:patient' patient.id %}">{{ patient }}</a> 
    </p> 
    <p>Update Patient:</p> 

    <form action="{% url 'patient:update' patient.id %}" method='post'> 
    {% csrf_token %} {{ form.as_p }} 
    <button name='submit'>add entry</button> 
    </form> 
{% endblock content %} 
+1

试试这个URL(R” ^患者/(?P [0-9] +)/ update $',views.update_patient,name ='update'), – Vaibhav

+0

谢谢。更正了网址我无法访问浏览器中的更新详细信息 – Kate

+0

您正在收到什么错误? – Vaibhav

回答

0

你的URL模式是错误的,你有\update内捕获组,它不应该是,换着花样给这样的:

url(r'^patients/(?P<patient_id>\d+)/update/$', views.update_patient, name='update') 
+0

谢谢你的回复。 – Kate