Hi, correct me if I got it wrong, but you essentially need these 4 things: 1) obtain the date for the the newest messages to delete 2) get cacheID of all objects to be deleted 3) delete the files 4) delete these objects from the database
So, you could use something like this: # get the date newest_to_delete = datetime.today() - timedelta(days=settings.DAYSTOKEEP) # get cacheID's of emails to be deleted, requires Django 1.0+ to_be_purged = archivedEmail.objects.filter(received__lte=newest_to_delete).values('cacheID', flat=True) # to_be_purged is now a Python list of cacheID's for item in to_be_purged: delete_file(item) # do the os.unlink() operations # now delete the entries from the database archivedEmail.objects.filter(received__lte=newest_to_delete).delete() Since you keep all files in flat directories, I'm assuming that you are not deleting millions of emails per day (otherwise the file lookup operations would really be the bottleneck). Hence, this "list of cacheID's" approach might be the fastest way. The iterator idea suggested before is good too, you'd have to compare them yourself on your data set to figure out what works better. Hope this helps Jirka -- You received this message because you are subscribed to the Google Groups "Django users" group. To post to this group, send email to django-us...@googlegroups.com. To unsubscribe from this group, send email to django-users+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/django-users?hl=en.