2017-07-26 3 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

は、(R」は、このURLを試してみてください^ patients /(?P [0-9] +)/ updated $ '、views.update_patient、name =' update ')、 – Vaibhav

+0

ありがとうございます。 URLを修正しました。ブラウザのアップデートの詳細にアクセスできません。 – Kate

+0

どのようなエラーが表示されていますか? – Vaibhav

答えて

0

あなたのURLパターンを使用して、グループをキャプチャ内\updateを持っている、間違っている、それはこれにパターンを変え、すべきではない:

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

お返事ありがとうございます。 – Kate

関連する問題