pythondjangodjango-database

django database delete specific number of entries


How to delete specific number of entries from the database? I did something like this

EntriesToDelete=Statusmessages.objects.filter(time__lt=date)[:30000]
EntriesToDelete.delete()

But I get an error which says: AssertionError. Cannot use 'limit' or 'offset' with delete.

How can I specify the number of entries to be deleted.


Solution

  • You could do it like this:

    pks = (Statusmessages.objects
           .filter(time__lt=date)
           .values_list('pk')[:30000])
    Statusmessages.objects.filter(pk__in=pks).delete()