On Feb 16, 10:43 pm, Masklinn <maskl...@masklinn.net> wrote: > On 16 Feb 2010, at 13:29 , Matt Schinckel wrote: > > > On Feb 16, 5:37 pm, Masklinn <maskl...@masklinn.net> wrote: > >> On 16 Feb 2010, at 08:13 , harryos wrote: > > >>> hi > >>> I am using a TimeField and want to set the default value as current > >>> time.I know the field normalizes to a datetime.time object.In a > >>> DateField ,I can put (default=datetime.date.today) and this will set > >>> the current day .Similarly I tried (default=datetime.now().time) for > >>> TimeField ..and can get a default time value when the page is > >>> loaded.But after waiting for a couple of minutes,I loaded the page > >>> again(without restarting the server) and the timevalue shown was the > >>> old one ,not current time. > > >> Argument are only evaluated once, so `default=datetime.now().time` sets > >> the default to the `datetime.now().time` as it is when evaluated. Once. > > >> Just wrap the thing in a `lambda` and you should be good to go: > >> `default=(lambda:datetime.now().time)` > > > You don't even need to do this. Just remove the () from > > datetime.now(), and it will do what you want it to. > > > If you pass in a callable as the default, this will be called each > > time the object is created. > > > Matt. > > Except in this case he wants a `time` object, not a `datetime` one. Are you > sure Django handles the coercion/conversion from `datetime` to `time`?
Sorry, my mistake. For some reason I thought there was a datetime.time.now() method. The lambda is the best solution. -- You received this message because you are subscribed to the Google Groups "Django users" group. To post to this group, send email to django-us...@googlegroups.com. To unsubscribe from this group, send email to django-users+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/django-users?hl=en.