I think this belongs to the validator. If the validator has already removed
the subseconds you are in no luck.
If it works for you, I do not see a problem. Anyway, remember that this API
is experimental. They will stay but we may still change something before 2.0
On Wednesday, 18 April 2012 15:02:37 UTC-5, nick name wrote:
>
> I was away for two weeks and finally caught up with the git updates and
> the mailing list; what a pleasant surprise!
>
> The before/after infrastructure is a joy. It is simple and elegant, much
> faster and more effective than the monkeypatching I submitted, AND with
> auditing implemented on top of it. Thank you very much Massimo, this is
> great!
>
> You asked in the ticket -- yes, this is a great, efficient implementation
> of auditing.
>
> A question I keep bugging (and submitting patches about) is the
> implementation of subsecond precision in the database. With the new code, I
> believe it is as simple as doing:
>
> def change_datetime_and_time_to_string(fields):
> for k, v in fields.items():
> if isinstance(v, (datetime.datetime, datetime.time)): fields[k] =
> v.isoformat().replace('T', ' ')
>
> _before_insert.append(change_datetime_and_time_to_string)
>
> Is there a reason not to do that?
>
> If not, would it be possible to make the DAL constructor append such a
> before_insert filter to any table? (As it is implemented, I would have to
> add it myself to tables that I want to apply it to).
> A filter such as the above could be useful if it comes by default (but not
> inserted to the _before_insert list). Another useful filter would warn or
> raise an error if the time or datetime has a nonzero microsecond field --
> useful for oracle or db2 which do not have that option.
>
> Massimo, thanks again for the wonderful work - you are doing amazing work!
>
> BTW: for datetime, it is possible to use x.isoformat(' ') instead of
> x.isoformat().replace('T', ' '); but for time, isoformat() takes no
> arguments.
>