Your code can and should be reduced to:
return self.date and self.live and self.date == now
this is because:
now <= self.date <= now
is mathematically equal to self.date == now
- if you return a boolean depending on whether a condition is true, it's the same as just returning the result of evaluating the condition expression itself.
As to reducing a <= b and b<= c
: it's the same as a <= b <= c
; and this actually works with any other operator.