从Django打印一些医疗收据

因此,我正在为Doctor开发Django项目,其中我需要根据通过UpdateView插入到ModelForm中的值打印医疗收据,我面临着两个冲突。

  1. 我希望success_url将我重定向到同一页面,就像单击表单中的“保存”或“提交”按钮,而不是将我发送到其他页面一样。
  2. 我想知道如何创建要打印的pdf,但是基于在该updateview中插入的值,我已经在互联网上看到了一些教程,但是它们只是将一些随机文本呈现到html模板中,并使用xhtml2pdf来创建它到PDF并使用通用视图显示内容,但是我不知道该走什么路,所以我可以使用这些特定值来创建pdf。

正如您在我的html中看到的那样,我有一个带有锚标签的按钮,其中包含“ Imprimir”,因此,我的意思是进入更新视图,填充所有必填字段,保存内容并将我重定向到同一页面保存内容,这样我就可以点击“ Imprimir”按钮,创建具有此特定内容的PDF并进行打印。

希望你能理解我在说什么。

的HTML

{%extends 'base.html'%}
{%load staticfiles%}
{%block body_block%}
<link rel="stylesheet" href="{%static 'appointments/css/appointment_update.css'%}">
    <div class="Form">
        <form method="POST">
            <h3 id="Consult">Informacion de la consulta</h3>
            <h3 id="Patient">Signos Vitales</h3>
            <h3 id="Exams">Estudios:</h3>
            <h3 id="System">Examinacion por Sistema</h3>
            <h3 id="Physical">Examinacion Fisica</h3>
            <h3 id="Diagnose">Diagnostico y Tratamiento</h3>
            {%csrf_token%}
            {{form.as_p}}
            <input align="center" type="submit" value="Finalizar Consulta">
            <button><a href="">Imprimir</a></button>
        </form>
    </div>
{%endblock%}

楷模

class Consults(models.Model):
    #General Consult Info
    Paciente = models.ForeignKey(Patient,on_delete=models.CASCADE,related_name='Paciente')
    Fecha = models.DateField()
    Motivo = models.CharField(max_length=500,null=True)
    Padecimiento = models.CharField(max_length=500,null=True)
    #Main Patient Info
    Presion = models.CharField(max_length=20,blank=True,null=True)
    Temperatura = models.FloatField(blank=True,null=True)
    Peso = models.FloatField(blank=True,null=True)
    Talla = models.FloatField(blank=True,null=True)
    #Any Exams done before
    Estudios = models.ImageField(upload_to='studies',blank=True)
    #Interrogatory by System
    Digestivo = models.CharField(max_length=500,blank=True,null=True)
    Endocrino = models.CharField(max_length=500,blank=True,null=True)
    Renal = models.CharField(max_length=500,blank=True,null=True)
    Linfativo = models.CharField(max_length=500,blank=True,null=True)
    Respiratorio = models.CharField(max_length=500,blank=True,null=True)
    #Physical Exploration
    Cabeza = models.CharField(max_length=500,blank=True,null=True)
    Torax = models.CharField(max_length=500,blank=True,null=True)
    #Diagnose
    CIE_10 = models.ForeignKey(CIE_10,on_delete=models.DO_NOTHING,blank=True,null=True)
    Detalle_de_Codigo = models.CharField(max_length=500,blank=True,null=True)
    Diagnostico = models.CharField(max_length=500,blank=True,null=True)
    Procedimiento = models.CharField(max_length=500,blank=True,null=True)
    Analisis = models.CharField(max_length=500,blank=True,null=True)
    #Treatment
    Medicamento = models.CharField(max_length=500,blank=True,null=True)
    Descripcion = models.CharField(max_length=500,blank=True,null=True)
    Uso = models.CharField(max_length=500,blank=True,null=True)
    Dosis = models.CharField(max_length=500,blank=True,null=True)
    Acciones = models.CharField(max_length=500,blank=True,null=True)

观看次数

class AppointmentUpdateView(UpdateView):
    model = Consults
    form_class = ConsultForm
    template_name = 'appointments_update.html'
    success_url = '/appointments/appointmentlist'

乌尔斯

urlpatterns = [
    path('',AppointmentIndexView.as_view(),name='appointmentindex'),
    path('AddConsult',AddAppointmentView.as_view(),name='addappointment'),
    path('appointmentslist/',AppointmentListView.as_view(),name='appointmentlist'),
    path('<int:pk>',AddAppointmentDetailView.as_view(),name='appointmentdetail'),
    path('update/<int:pk>',AppointmentUpdateView.as_view(),name='appointmentupdate'),
    path('delete/<int:pk>',AppointmentDeleteView.as_view(),name='appointmentdelete'),
]
评论