有一个类似的问题,但它需要使用tastypie - 我正在寻找一种方法来做到这一点,而无需任何额外的附加组件。
我试图创建一个系统,用户只能编辑与其帐户绑定的对象。
models.py:
class Item(models.Model):
...
author = models.ForeignKey(User)
...
我想要一个系统,只有在author字段中指定的用户才能编辑或删除该对象。使用默认的管理系统似乎(对我来说)是不可能的。我可以通过编写自己的管理页面来实现它,该管理页面检查用户是否有权删除特定对象,但如果有其他方式会更好。
答案 0 :(得分:1)
您需要为模型创建ModelAdmin实例并覆盖相应的方法:
class MyModelAdmin(admin.ModelAdmin):
def has_add_permission(request):
# Should return True if adding an object is permitted, False otherwise.
def has_change_permission(request, obj=None)
# Should return True if editing obj is permitted, False otherwise.
# If obj is None, should return True or False to indicate whether editing of objects of this type is permitted in general
def has_delete_permission(request, obj=None)
# Should return True if deleting obj is permitted, False otherwise.
# If obj is None, should return True or False to indicate whether deleting objects of this type is permitted in general