django/programming 的新手,非常感谢任何帮助。我需要帮助浏览医生预约的历史并选择每次预约时进行的免疫接种,然后创建未来免疫接种的日期(基于免疫信息表,该表具有适当的免疫间隔并且会增加从访问日期开始)
模型.py
class Immunizations(models.Model):
immunization = models.CharField(max_length=100, null=True)
interval = models.CharField(max_length=5, null=True)**This should probably be an integer field, will change later
class Visit(models.Model):
patient = models.ForeignKey(Patients)
date_of_visit = models.DateField(null=True)
weight = models.CharField(max_length=5, null=True)
immunization = models.ManyToManyField(Immunizations)
timestamp = models.DateTimeField(auto_now_add=True, default=datetime.datetime.now())
active = models.BooleanField(default=True)
我整个周末都在阅读关于 SO 的文档和问题,但对于如何完成这个问题仍然非常矛盾。
我想要的是:
Visit.date_of_visit1
Visit.immunization1, Visit.date_of_visit1 + Immunization.interval1
Visit.immunization2, Visit.date_of_visit1 + Immunization.interval2
Visit.date_of_visit2
Visit.immunization1, Visit.date_of_visit2 + Immunization.interval1
ETC
这可能会持续数年,每次访问都会进行不同的免疫接种。我想保留执行免疫接种的记录并记录到期日,即使该到期日已过。
视图.py
def visit_profile(request, slug):
patient = Patients.objects.get(slug=slug)
try:
visit = Visit.objects.filter(patient_id=patient.id)
except:
return HttpResponseRedirect('/')
#Immunization Due Dates
visitdate = Visit.objects.get(patient_id=patient.id, active=1).date_of_visit
imm = Immunizations.objects.all()
visitimm = []
for immunization in imm:
due = Immunizations.objects.get(id= immunization.pk)
duedate = visitdate + timedelta(days=int(due.interval))
visitimm.append((due, duedate))
return render_to_response('patient.html',locals(), context_instance=RequestContext(request))
我的views.py需要帮助。上述工作,但仅在显示 active=1 访问信息。我不知道如何修改/重新做以实现我想要的并且能够访问我的模板文件中的数据。我已经尝试过 __in 方法、itertools、循环等。任何人都可以提供正确的方法/方向吗?一旦我可以让代码工作,我将返回并正确设置错误捕获。谢谢!