def retry_failed(FailAdmin, request, queryset):
    for task in queryset:
        async(task.func, *task.args or (), hook=task.hook, **task.kwargs or {})
        task.delete()
Backends can override this to return a list of (column_name, referenced_table_name,
dataset/ETHPy150Open Koed00/django-q/django_q/admin.py/retry_failed--crossover with--dataset/ETHPy150Open cloudera/hue/desktop/core/ext-py/Django-1.6.10/django/db/backends/__init__.py/BaseDatabaseIntrospection.get_key_columns