2013-08-31 2 views
0

У меня есть два стола, в которых хранится информация из медицинской карты, а вторая - вторая медицинская консультация, и я хочу сделать поиск, и если у пациента была вторая медицинская консультация, второй медицинской консультации в моем шаблоне, если у пациента нет второй медицинской консультации, покажите мне информацию о медицинской карте. Мне нужна помощь и идеи о том, как я могу это сделать, я новичок в Django и Python, я делаю поиск в представлении следующим образом, проблема с этим поиском заключается в том, что я вижу только медицинскую запись, и мне нужно что если у пациента была вторая медицинская консультация, чтобы отобразить информацию.2 разных поиска на вид

View.py

def Expediente_Detalle(request, credencial): 
    Expediente_Detalle = get_object_or_404(ExpedienteConsultaInicial, credencial_consultainicial=credencial) 
    return render(request, 'ExpedienteDetalle.html', {'Expediente_Detalle': Expediente_Detalle}) 

Models.py

class ExpedienteConsultaInicial(models.Model):  
    credencial_consultainicial = models.CharField(max_length=10, null=True, blank=True) 

    def __unicode__(self): 
     return self.credencial_consultainicial 


class ConsultasSubsecuentes(models.Model): 
    Consultasbc_credencial =models.ForeignKey(ExpedienteConsultaInicial, 
    related_name='csb_credencial') 
+0

Опубликовать свои модели –

ответ

1

Try:

#Models 

class ExpedienteConsultaInicial(models.Model): 
    #max_legth=10 might be too small 
    credencial_consultainicial = models.CharField(max_length=100, null=True, blank=True) 

    def __unicode__(self): 
     return self.credencial_consultainicial 


class ConsultasSubsecuentes(models.Model): 
    #related_name is name of attribute of instance of model 
    #to (not from!) which ForeignKey points. 
    #Like: 
    #assuming that `related_name` is 'consultations' 
    #instance = ExpedienteConsultaInicial.objects.get(
    #      credencial_consultainicial='text text text' 
    #) 
    #instaqnce.consultations.all() 
    #So I suggest to change `related_name` to something that will explain what data of this model means in context of model to which it points with foreign key. 
    consultasbc_credencial = models.ForeignKey(ExpedienteConsultaInicial, 
    related_name='consultations') 

#View  

def expediente_detalle(request, credencial): 
    #Another suggestion is to not abuse CamelCase - look for PEP8 
    #It is Python's code-style guide. 
    detalle = get_object_or_404(ExpedienteConsultaInicial, credencial_consultainicial=credencial) 
    subsequent_consultations = detalle.csb_credencial.all() 
    return render(request, 'ExpedienteDetalle.html', {'Expediente_Detalle': detalle, 'consultations': subsequent_consultations}) 

Полезные ссылки:

  • Following relationships backward - вот почему я предлагаю вам изменения related_name
  • PEP8 - и это о CamelCase и код-стиль в Python ,
0

Все, что вам нужно сделать, это выполнить другой запрос, и предоставить результат вашего шаблона

def Expediente_Detalle(request, credencial): 
    Expediente_Detalle = get_object_or_404(ExpedienteConsultaInicial, credencial_consultainicial=credencial) 
    second_consultation = ExpedienteConsultaInicial.objects.filter(..) 
    return render(request, 'ExpedienteDetalle.html', {'Expediente_Detalle': Expediente_Detalle, 'second_consultation': second_consultation}) 

Тогда , в вашем шаблоне, итерация свыше second_consultation:

{% for c in second_consultation %} 
    <p> {{ c.credencial_consultainicial }} </p> 
{% endfor %} 
Смежные вопросы