如何在django中的CreateView中创建对象后添加django-guardian permisions?

时间:2014-05-20 13:32:26

标签: django django-models permissions django-class-based-views django-guardian

我得到了使用基本ModelForm的简单CreateView,并且我希望在创建此特定对象后为当前用户添加can_view权限。据我所知,必须在保存对象后完成。我应该使用post_save信号吗?请记住,我不想在修改现有对象时触发此操作。

1 个答案:

答案 0 :(得分:0)

这可以在模型保存方法

中完成
class MyModel(models.Model):
    def save(self):
        if 'pk' not in self:
            #add you permission code here
        super(MyModel, self).save()

这样做会检查您的对象是否有主键。如果没有,那么这是一个新对象,应该创建权限。如果主键,则正在编辑此对象,不应添加任何权限。