Django Admin阻止删除最后一条记录

时间:2016-01-22 14:25:47

标签: django django-admin

我是django的新手并且在我去的时候学习。

我有一个必须有1条记录的模型,因此我想阻止删除最后一条记录。

model.py

class SliderContent (models.Model):
    name = models.CharField(max_length=40)
    image = models.ImageField(upload_to='image')

我在admin.py

中尝试了以下操作
class SliderContentAdmin(admin.ModelAdmin):
.....
    def delete_model(self, request, obj):
     if last_record:
          storage = messages.get_messages(request)
          storage.used = True
          messages.error(request, 'Cannot delete last record.')
     else:
          obj.delete()

这不起作用,我也查看了一个pre_delete接收器,但是从我读过的内容中,这将无法正常工作,因为我在管理视图中使用了构建。

这样做的最佳方式是什么?

1 个答案:

答案 0 :(得分:3)

覆盖ElementView.js方法:

has_delete_permission()