Hi all,
I’m trying to update the year in a DateRangeSlider
based on the value of a DiscreteSlider
, with no luck. (The parameters of the DateRangeSlider
do not update when I move the DiscreteSlider
. Also, when I employ .param.trigger('value')
it raises a ValueError: Date 'start' only takes datetime types
, although I do employ datetime
.)
My code is below. Any pointers would be greatly appreciated.
#Importing
import panel as pn
import datetime as dt
pn.extension()
#DiscreteSlider widget
pnDiscreteSlider = pn.widgets.DiscreteSlider(name='Study Year', options=[2025,2030],value=2025)
#DateRangeSlider widget
pnDateRangeSlider = pn.widgets.DateRangeSlider(
name='Date Range',
start=dt.datetime(pnDiscreteSlider.value,1,1),
end=dt.datetime(pnDiscreteSlider.value,12,31),
value=(dt.datetime(pnDiscreteSlider.value,1,1),dt.datetime(pnDiscreteSlider.value,12,31)),
)
#Attempting to update the year of the DateRangeSlider when pn.DiscreteSlider.value is changed
def callback(event):
pnDateRangeSlider.start = dt.datetime(event.new,1,1),
pnDateRangeSlider.end = dt.datetime(event.new,12,31),
pnDateRangeSlider.value = (pnDateRangeSlider.start,pnDateRangeSlider.end)
watcher = pnDiscreteSlider.param.watch(callback,'value')
#Panel
pn.Column(pnDiscreteSlider, pnDateRangeSlider)
##pnDiscreteSlider.param.trigger('value') #Yields: ValueError: Date 'start' only takes datetime types.