{{{
n = now() - timedelta(days=30)
MyModel.objects.filter(my_date__lt=n).delete()
}}}
Query being logged is:
2017-04-05 11:41:22,192 DEBUG (0.019) QUERY = 'SELECT "MY_MODEL"."ID",
"MY_MODEL"."MY_DATE" FROM "MY_MODEL" WHERE "MY_MODEL"."MY_DATE" < :arg0' -
PARAMS = (Oracle_datetime(2017, 3, 6, 8, 41, 21, 913366),);
args=(Oracle_datetime(2017, 3, 6, 8, 41, 21, 913366),)
The same behaviour happens with 1.10.* version of Django as well.
--
Ticket URL: <https://code.djangoproject.com/ticket/28023>
Django <https://code.djangoproject.com/>
The Web framework for perfectionists with deadlines.
Comment (by kapil garg):
I don't see this. Here is the model i used and query i performed
{{{
class Test(models.Model):
name = models.CharField(max_length=100, blank=True)
#shell
>>> Test.objects.filter(name__startswith='test').delete()
(0.000) BEGIN; args=None
(0.001) DELETE FROM "bug_test" WHERE "bug_test"."name" LIKE 'test%' ESCAPE
'\'; args=('test%',)
(1, {'bug.Test': 1})
}}}
Is this bug related to some particular backend or does this bug also
result in failure of the `delete()` method ?
Does your object get deleted or not ?
--
Ticket URL: <https://code.djangoproject.com/ticket/28023#comment:1>
* status: new => closed
* resolution: => invalid
Comment:
This is caused by a combination of two things:
1. You have a `pre_delete`/`post_delete` signal registered for your
`MyModel` or foreign keys pointing to it so Django doesn't perform a
`DELETE FROM` right away and collects objects matching your `filter()` in
memory to simulate `ON DELETE`.
2. No `MyModel` match your filter no the collection routine stops right
away and doesn't both performing a `DELETE FROM`.
--
Ticket URL: <https://code.djangoproject.com/ticket/28023#comment:2>