我想限制其他用户更改除所有者用户以外的对象实例。
因为我用的是
has_change_permission
管理模型功能,但它不工作。
我的模型:
class Book(models.Model):
author = models.ForeignKey(User, related_name = 'book_author')
...
在我的admin.py中
class BookAdmin(admin.ModelAdmin):
def has_change_permission(self, request, obj):
if request.user.is_super_user():
return True
elif request.user == obj.author:
return True
else:
return False
if obj is None:
return False
在我看来.py
class BookUpdate(generic.UpdateView):
model = Book
form_class = BookUpdateForm
template_name = 'accounts/book_update.html'
def get_object(self, *args, **kwargs):
return Book.objects.get(id=self.kwargs.get('id'))
在我的URL中:
url(r'^update_book/(?P<id>[\w-]+)/$', views.BookUpdate.as_view(),name='update_book')
现在,当任何人转到这个url模式可以编辑书籍,但我需要只有作者可以编辑这本书。
是
有更改权限
正确的方法,还是其他更好的方法?