在自定义django查询集中使用自定义模型方法
自定义模型查询集使用模型的一个字段进行一些计算,但现在我需要通过自定义模型方法获取该字段,在该方法中,我根据请求进行一些调整。用户的时区。该函数将用户作为参数 以下是一些代码片段: 查询集:在自定义django查询集中使用自定义模型方法,django,python-3.x,django-queryset,django-orm,Django,Python 3.x,Django Queryset,Django Orm,自定义模型查询集使用模型的一个字段进行一些计算,但现在我需要通过自定义模型方法获取该字段,在该方法中,我根据请求进行一些调整。用户的时区。该函数将用户作为参数 以下是一些代码片段: 查询集: break_time_start = F("machine_break_time__break_time_start") 模型函数: def break_time_start_user(self, user) -> datetime.time: utc_time = self.break_
break_time_start = F("machine_break_time__break_time_start")
模型函数:
def break_time_start_user(self, user) -> datetime.time:
utc_time = self.break_time_start_utc.replace(tzinfo=self.timezone)
date = datetime.datetime.combine(datetime.date.today(), utc_time)
return localtime(date, user.timezone).time()
如何在我的自定义queryset中使用此自定义方法?您的方法在应用程序空间中执行,queryset在数据库级别上,这正是您想要实现的。我知道该方法在app lvl上,qs在DB lvl上,但我需要在DB lvl上提供该方法,或者在我的queryset中提取该方法。我不认为这是合理的,或者说是吗?方法本身不是,但如果你试图解释确切的问题,有人可以为你编写与数据库级别相关的解决方案,那么问题是,Postgres中有时间字段存储在用户的时区中。为了让我从数据库中获取时间值并向其他用户显示,我需要获取时间字段值,将其转换为utc并将其转换为请求此值的用户的时区您的方法在应用程序空间中执行,queryset在数据库级别上,这正是您试图实现的。我知道该方法在app lvl上,qs在DB lvl上,但我需要在DB lvl上使用该方法,或者在我的queryset中提取该方法。我不认为这是合理的,或者说是吗?方法本身不是,但如果你试图解释确切的问题,有人可以为你编写与数据库级别相关的解决方案,那么问题是,Postgres中有时间字段存储在用户的时区中。为了让我从DB中获取该时间值并将其显示给其他用户,我需要获取该时间字段值,将其转换为utc并将其转换为请求该值的用户的时区