如何跳过Django admin中删除确认页面的特定型号?

时间:2015-02-06 11:59:16

标签: python django

我有一个包含大量数据的模型,Django很长时间都会创建删除确认页面。我必须跳过此过程并删除数据而不进行任何确认。我已经尝试了一些来自互联网的解决方案,但它不起作用 - 我仍然看到确认页面。

任何人都知道怎么做?

2 个答案:

答案 0 :(得分:3)

def delete_selected(modeladmin, request, queryset):
    queryset.delete()

class SomeAdmin(admin.ModelAdmin):
    actions = (delete_selected,)

答案 1 :(得分:0)

Django 2.1 released是新的ModelAdmin方法get_deleted_objects,该方法允许在确认屏幕上为一次和多次删除(例如,使用delete操作)指定参数。

就我而言,我想删除具有多个关系的对象列表,但是设置了级联删除。我最终得到了这样的东西:


def get_deleted_objects(self, objs, request):                                                                                                                                
      deleted_objects = [str(obj) for obj in objs]
      model_count = {MyModel._meta.verbose_name_plural: len(deleted_objects)}
      perms_needed = []
      protected = []
      return (deleted_objects, model_count, perms_needed, protected)

我可以在model_count字典中包括其他模型,例如,仅获取计数,以避免仍然列出我不需要单独查看的数千个次要实例。