如何根据时间写入状态输出?

时间:2019-07-16 13:23:42

标签: python django

如何根据时间写入状态输出?

我有一个小问题,即在使用时间方面,如果过了不到一天,那么,如果已经过了一天,则分配状态为“正在等待”('e') ,然后状态为“就绪”(“ rd”)。 这是我的代码的一部分,这里只是创建票证并立即分配“等待”。 如果过了不到一天,如何设置等待状态(“ e”),如果过了一天,则如何设置就绪(“ rd”)状态,请帮助我。预先感谢您的帮助或提示!

class PatientAcceptVisitView(AbsPatientVie
    template_name = 'patient/accept_visit.html'

    def post(self, request, **kwargs):
        context = self.get_context_data(**kwargs)
        pk_visit = context.get('pk_visit')
        visit = CoreVisit.get(pk=pk_visit)
        visit.guid_user_patient = self.request.user.guid_user
        visit.type = visit.VISIT_TYPES[2]
        visit.date_appointment = timezone.now()
        visit.save()
        PatientConsultationTicket.objects.create(pk_visit=pk_visit, 
        creator=self.request.user,
        consultation_time=visit.date_visit_start, status='e')
        visit_start_as_text = visit.date_visit_start.strftime("%H:%M день %d.%m.%Y")
        messages.info(request, f'Вы записались на {visit_start_as_text} к доктору {context.get("doctor")}')
        return HttpResponseRedirect(reverse_lazy('patient:visits'))

2 个答案:

答案 0 :(得分:0)

您可以将时间增量用于此类任务(Python +3.6):

import datetime

one_day = datetime.timedelta(days=1)

now = datetime.datetime.now()

if now - date_visit_start > one_day:
    # ...
else:
   # ...

答案 1 :(得分:0)

假设您有一个显示PatientConsultationTicket状态的视图,则可以查看日期,然后在给出响应时更新状态。

所以说您有一个向用户显示票证的方法

from datetime import datetime, timedelta

class TicketDetailView(View):

    def get(self, request, **kwargs):
        ticket = PatientConsultationTicket.objects.get(pk=kwargs['pk'])
        one_day_mark = ticket.created_at + timedelta(days=1)
        if datetime.now() > one_day_mark:
            ticket.status = 'rd'
            ticket.save()
        # context and other logic
        return render(request, 'patient/ticket_detail.html')