Python 如何限制特定用户对UpdateView的访问?
我有这样一个模式: models.py:Python 如何限制特定用户对UpdateView的访问?,python,django,django-class-based-views,Python,Django,Django Class Based Views,我有这样一个模式: models.py: class Evento(models.Model): [...] user = ForeignKey(model=User) forms.py: class EventoForm(forms.ModelForm): class Meta: model = Evento 和generic view UpdateView的子类。我想将该视图的访问权限限制为在该Evento实例中指定的用户。最好的解决方法是什么?调
class Evento(models.Model):
[...]
user = ForeignKey(model=User)
forms.py:
class EventoForm(forms.ModelForm):
class Meta:
model = Evento
和generic view UpdateView的子类。我想将该视图的访问权限限制为在该Evento实例中指定的用户。最好的解决方法是什么?调用dispatch后,无论用户是否具有权限,您的所有数据都将保存。在调用调度之前,必须检查权限。看看这些片段。但更好的方法是重新定义get_对象方法:
def get_object(self, *args, **kwargs):
obj = super(EditarEvento, self).get_object(*args, **kwargs)
if obj.user != self.request.user:
raise PermissionDenied() #or Http404
return obj