允许基于使用Django-Moderation的条件将模型实例添加到审核队列

时间:2015-06-03 18:22:48

标签: python django django-models django-admin

给出一个模型:

class Blog(models.Model):
    title = models.CharField(max_length=200)#Title of the Post
    body = models.TextField(blank=False)
    state = models.CharField(max_length=60,choices=STATE_CHOICES,default='raw')`

仅当state=published

时,才会将博客实例添加到Django-Moderation的审核队列中

1 个答案:

答案 0 :(得分:0)

此问题的解决方案是使用Django-Moderation的“Automoderation”功能。每当我们使用instance.save()保存模型实例时,我们会通过覆盖is_auto_approve() Generic Moderator函数来自动调整模型实例,如图所示。

class BlogModerator(GenericModerator):

def is_auto_approve(self, obj, user):
    if obj.state == "raw":
        return self.reason('Not Submitted Yet !')
    super(MyModelModerator, self).is_auto_approve(obj, user)

此处将state = raw绕过审核或其他操作添加到审核队列的所有实例。