0

私は2つのテーブルを持っています.1つは医療記録からの情報を保存し、もう1つは2番目の医療相談です。私が望むのは検索を行うことです.患者が2回目の医療相談を受けた場合、テンプレートに2番目の医療相談の情報が表示されます.患者が 2 回目の医療相談を受けていない場合は、医療記録の情報のみを見せてください。私はそれを行う方法について助けとアイデアが必要です。私は 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})

モデル.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')
4

2 に答える 2

1

試す:

#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})

便利なリンク:

  • 関係を後ろ向きにたどる- それが私があなたに変えることを勧める理由ですrelated_name
  • PEP8 - これは CamelCase と Python のコード スタイルに関するものです。
于 2013-09-01T12:29:21.817 に答える
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 %}
于 2013-09-01T12:23:20.293 に答える