gpt4 book ai didi

Django admin - 是否可以限制用户只能访问他自己输入的数据?

转载 作者:行者123 更新时间:2023-12-04 11:43:26 24 4
gpt4 key购买 nike

换句话说,我想禁止用户在所有应用程序中编辑或查看除他们自己输入的数据之外的任何内容。

我读了 here内置的管理应用程序可能无法做到这一点。如果是这样,是否有可用的扩展?

谢谢

最佳答案

可以办到。
您需要先在 admin.py 中创建适当的 modelAdmin。

对于列表“显示”过滤修改 queryset方法:

class MyModelAdmin(admin.ModelAdmin):

def queryset(self, request):
return Entry.objects.filter(owner=request.user)

对于字段过滤,根据要限制的字段类型覆盖适当的方法。

相关的 Django 文档在这里:
https://docs.djangoproject.com/en/1.3/ref/contrib/admin/#django.contrib.admin.ModelAdmin.formfield_for_foreignkey

要限制外键字段输出,您可以执行以下操作:
(来自 Django 文档)
class MyModelAdmin(admin.ModelAdmin):
def formfield_for_foreignkey(self, db_field, request, **kwargs):
if db_field.name == "car": # The name of the field you want to limit
kwargs["queryset"] = Car.objects.filter(owner=request.user)
return super(MyModelAdmin, self).formfield_for_foreignkey(db_field, request, **kwargs)

关于Django admin - 是否可以限制用户只能访问他自己输入的数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7072492/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com