but django does call this sql, or does it call something else? how can i use or see what django really calls?
so there is no need to report this as i understand it? :) thx, ash On Jul 13, 6:06 pm, Alex Gaynor <[email protected]> wrote: > On Mon, Jul 13, 2009 at 11:00 AM, stuff4ash <[email protected]> wrote: > > > using mysql. > > > model: only the times are relevant. > > > class Time(models.Model): > > start = models.DateTimeField("zeitbeginn") > > end = models.DateTimeField("zeitende", > > blank=True,null=True) > > user = models.ForeignKey(User) > > project = models.ForeignKey(Project,verbose_name="Projekt") > > phase = models.ForeignKey(Phase, verbose_name="Phase", > > blank=True, null=True) > > comment = models.CharField("kommentar",max_length=100,null=True) > > telearbeit = models.NullBooleanField(blank=True, null=True) > > > if i look at at the sql when i filter with datetime. > > > Time.objects.filter(start__gt=datetime.now()).query.as_sql()[0] % > > Time.objects.filter(start__gt=datetime.now()).query.as_sql()[1] > > > i get this: > > SELECT `time_manager_time`.`id`, `time_manager_time`.`start`, > > `time_manager_time`.`end`, `time_manager_time`.`user_id`, > > `time_manager_time`.`project_id`, `time_manager_time`.`phase_id`, > > `time_manager_time`.`comment`, `time_manager_time`.`telearbeit` FROM > > `time_manager_time` WHERE `time_manager_time`.`start` > 2009-07-13 > > 17:59:12 ORDER BY `time_manager_time`.`start` DESC > > > if i try to run the query manually, i get an error. mysql wants quotes > > around the date: > > SELECT `time_manager_time`.`id`, `time_manager_time`.`start`, > > `time_manager_time`.`end`, `time_manager_time`.`user_id`, > > `time_manager_time`.`project_id`, `time_manager_time`.`phase_id`, > > `time_manager_time`.`comment`, `time_manager_time`.`telearbeit` FROM > > `time_manager_time` WHERE `time_manager_time`.`start` > '2009-07-13 > > 17:59:12' ORDER BY `time_manager_time`.`start` DESC > > > but using the queryset works. havent been able to find out why > > This isn't a bug. The reason for this is Django uses prepared queries when > sending SQL to the DB. That is it just leaves %s in the query and sets the > DB the params seperately. When you combine the strings Django approxmates > the quoting the database will do, but this often isn't totally correct. > > Alex > > -- > "I disapprove of what you say, but I will defend to the death your right to > say it." -- Voltaire > "The people's good is the highest law." -- Cicero > "Code can always be simpler than you think, but never as simple as you want" > -- Me --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Django developers" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/django-developers?hl=en -~----------~----~----~----~------~----~------~--~---
