2015-06-08 60 views
0

我是Django的初學者,我遇到了問題...。 我使用3個模型(患者/問題/回覆)創建了一個應用程序(名稱:PQR) 我希望看到一個視圖,其中包含頂部的患者姓名,所有可用的問題以及可能的答案這個問題(有些病人可能有空的回覆/沒有回覆)。 我知道如何顯示患者的答案,但我想顯示每個問題,如果可用,我想提供答覆,但我不知道如何在我的視圖中編寫此答案?在Django的一個視圖中顯示多個模型

這是我的模型:

Class Patient(models.Model): 
    name = models.CharField(max_length=50) 

def __unicode__(self): 
    return self.name 

def listReply(self): 
    replies = Reply.objects.filter(patient= self.id) 
    return replies 

class Question(models.Model): 
    question_text = models.CharField(max_length=200) 
    pub_date = models.DateTimeField('date published') 

def __unicode__(self): 
    return self.question_text 


class Reply(models.Model): 
    question = models.ForeignKey(Question) 
    patient = models.ForeignKey(Patient) 
    reply_text = models.CharField(max_length=200) 

def __unicode__(self): 
    return str(self.reply_text) 

這是我的看法:

from django.shortcuts import render, get_object_or_404 
from django.template import RequestContext 
from .models import Patient, Question, Reply 

def list(request): 
    list_patient = Patient.objects.order_by('name') context = RequestContext(request, {'list_patient':list_patient,'welcome': 'Welcome on my page Django !', 
}) 
return render(request, 'PQR/list.html', context) 

def detail(request, patient_id): 
    patient = get_object_or_404(Patient, pk=patient_id) 
    list_question = Question.objects.all() 
    Replies4MyPatient = Reply.objects.filter(patient=patient_id) 
    return render(request, 'PQR/detail.html', locals()) 

這是我的網址:

from django.conf.urls import url 
from . import views 

urlpatterns = [ 
    url(r'^$', views.list, name ='list_patient'), 
    url(r'^(?P<patient_id>[0-9]+)/patient/$', views.detail, name ='detail_patient'), 

這是我的模板:

{% load staticfiles %} 
<link rel="stylesheet" type="text/css" href="{% static 'Forum/style.css' %}" /> 
<div> 
<h1>Patient details : {{ patient }}</h1>  
</div> 
<fieldset> 
{% csrf_token %} 
{% for reply in Replies4MyPatient %} 
     </br><abcd>{{ reply.question }}</abcd></br> 
     </br> 
      <li>{{ reply }}</li> 
{% endfor %} 
</fieldset></br> 
<a href="{% url 'list_patient' %}"/> <input type="button" value="Look Back"/> 

謝謝你的幫助!

+2

你的問題是什麼?!? – deets

+0

本聲明中的pk是什麼'pk = patient_id'? –

+0

pk mean主鍵 –

回答

0

功能render生成html以返回模板和上下文。在您的模板PQR/detail.html中,您使用{{ patient }}Replies4MyPatient。你需要建立這些值的上下文,並將其傳遞給render

def detail(request, patient_id): 
    patient = get_object_or_404(Patient, pk=patient_id) 
    list_question = Question.objects.all() 
    Replies4MyPatient = Reply.objects.filter(patient=patient_id) 
    context = {'patient' : patient, 'Replies4MyPatient' : Replies4MyPatient} 
    return render(request, 'PQR/detail.html', context=context) 
相關問題