Django admin - 禁用特定模型实例的"编辑"

Luk*_*vic 2 django

嗨我想根据模型状态禁用某些模型实例的编辑(在Django管理员中).如果状态大于1,则将禁用编辑.我知道如何在左侧禁用该链接,但如果我设置了正确的URL,它仍然可以编辑,因此不欢迎此解决方案.

我的模特:

STATUS_CHOICES = (
                (1, _(u'p')),
                (2, _(u'w')),
                (3, _(u'l')),
                (4, _(u'p')),
)  

class Ticket(models.Model):
   author = models.ForeignKey(User, editable=False)
   status = models.PositiveIntegerField(_('status'), choices=STATUS_CHOICES, default=1, editable=False)
Run Code Online (Sandbox Code Playgroud)

Chr*_*att 9

class MyModelAdmin(admin.ModelAdmin):
    ...
    def has_change_permission(self, request, obj=None):
        if obj is not None and obj.status > 1:
            return False
        return super(MyModelAdmin, self).has_change_permission(request, obj=obj)
Run Code Online (Sandbox Code Playgroud)

见[1]