python - 如何根据时间编写状态输出?
问题描述
如何根据时间编写状态输出?
我有一个任务,我遇到了一个小问题,即在时间的使用上,如果不到一天,则分配状态“等待”('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'))
解决方案
假设您有一个显示 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')
推荐阅读
- javascript - 两次更新状态时反应useState,第一次更新被删除
- python - Python Numpy:如何将带有一对逗号分隔浮点数的文本文件转换为多维“ndarray”
- flutter - 如何指定动态 Duration 时间?
- ruby-on-rails - Rails 6 rake assets:由于缺少 Master Key Env 变量,AWS 上的 Docker 预编译失败
- reactjs - react-native-navigation 结合 createStackNavigator、BottomTabNavigator 和 Modal
- python-3.x - 需要帮助从列中获取数据
- laravel - Pusher:通道绑定和 Laravel 回显的区别
- javascript - 在回调中仅附加一次页脚
- scheme - 从命名空间中删除变量
- swagger - OAS3 的 Swagger 代码生成器