#29424: Datetime objects parsed as strings when signals used - Django 1.9.5
------------------------------------+--------------------------------------
     Reporter:  Adrian Castellanos  |                    Owner:  nobody
         Type:  Bug                 |                   Status:  new
    Component:  Uncategorized       |                  Version:
     Severity:  Normal              |               Resolution:
     Keywords:  signals model       |             Triage Stage:  Unreviewed
    Has patch:  0                   |      Needs documentation:  0
  Needs tests:  0                   |  Patch needs improvement:  0
Easy pickings:  0                   |                    UI/UX:  0
------------------------------------+--------------------------------------
Description changed by Adrian Castellanos:

Old description:

> I found a strange behavior when accesing objects models using signals.
> The model is declared as:
>
> {{{
> class Campaign(models.Model):
>     start_stay_date = models.DateTimeField(null=True, blank=True)
>     end_stay_date = models.DateTimeField(null=True, blank=True)
> }}}
>
> When I use signals to connect the changes of the model with a function, a
> found that the instance that is passed as argument has strings instead of
> datetime in the dates:
>
> The code of the conection between the model and the function is:
>
> {{{
> def export_campaign_to_mongo(sender, instance, *args, **kwargs):
>     check_dates()
> post_save.connect(export_campaign_to_mongo, Campaign)
> }}}
>
> This is the output of the console checking the types of the objects:
>
> {{{
> >>>type(instance)
> <class 'campaigns.models.Campaign'>
> >>>instance.start_date
> '2018-04-11T00:00:00'
> >>>from campaigns.models import Campaign
> >>>Campaign.objects.first().start_date
> datetime.datetime(2016, 10, 10, 0, 0)
> }}}
>
> I am using Django v1.9.5.

New description:

 I found a strange behavior when accesing objects models using signals. The
 model is declared as:

 {{{
 class Campaign(models.Model):
     start_date = models.DateTimeField(null=True, blank=True)
     end_date = models.DateTimeField(null=True, blank=True)
 }}}

 When I use signals to connect the changes of the model with a function, a
 found that the instance that is passed as argument has strings instead of
 datetime in the dates:

 The code of the conection between the model and the function is:

 {{{
 def export_campaign_to_mongo(sender, instance, *args, **kwargs):
     check_dates()
 post_save.connect(export_campaign_to_mongo, Campaign)
 }}}

 This is the output of the console checking the types of the objects:

 {{{
 >>>type(instance)
 <class 'campaigns.models.Campaign'>
 >>>instance.start_date
 '2018-04-11T00:00:00'
 >>>from campaigns.models import Campaign
 >>>Campaign.objects.first().start_date
 datetime.datetime(2016, 10, 10, 0, 0)
 }}}

 I am using Django v1.9.5.

--

-- 
Ticket URL: <https://code.djangoproject.com/ticket/29424#comment:1>
Django <https://code.djangoproject.com/>
The Web framework for perfectionists with deadlines.

-- 
You received this message because you are subscribed to the Google Groups 
"Django updates" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/django-updates/068.86b48e11e8b38f217314ed7af114baa0%40djangoproject.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to