Bạn có thể thêm các hàm cơ sở dữ liệu vào Django , vì điều này, bạn có thể thêm một hàm cho câu lệnh INTERVAL trong postgres
class IntervalSeconds(Func):
function = 'INTERVAL'
template = "(%(expressions)s * %(function)s '1 seconds')"
Sau đó, bạn có thể sử dụng hàm này trong các truy vấn của mình để thêm giây vào ngày giờ
YourModel.objects.annotate(
attr=ExpressionWrapper(
F("article__created_on") + IntervalSeconds(F("article__websitet__avg_time_in_seconds_to_reach_ep")),
output_field=models.DateTimeField()
),
)
Kết quả của IntervalSeconds
hàm là khoảng thời gian đăng bài
1 giây nhân với trường được truyền cho nó. Điều này có thể được thêm và bớt từ một dấu thời gian. Bạn có thể tạo một Interval
chung chung chức năng này không chỉ mất vài giây mà phức tạp hơn một chút
ExpressionWrapper
được yêu cầu chuyển đổi kết quả thành đối tượng datetime