[英]Django Model Admin
如何在模型管理员中仅显示登录用户而不是所有用户? 现在用户只能看到自己的数据,但同时在编辑时可以在下拉列表中看到其他用户。 看图片
模型.py
user = models.ForeignKey(
User,db_column="user",null = True, on_delete = models.SET_NULL
)
管理文件
def get_queryset(self, request):
qs = super(Museum_ItemAdmin, self).get_queryset(request)
if request.user.is_superuser:
return qs
return qs.filter(user=request.user)
问题是当以“Peter”身份登录时,我可以查看和管理所有用户。 问题是我如何只能看到 Peter 而不能看到或更改任何其他用户?
非常感谢提前
我希望这个能帮上忙:-
您需要根据您的密钥进行过滤
管理文件
class UserAdmin(admin.ModelAdmin):
# list_display = ('username', 'is_active')
def get_queryset(self, request):
qs = super().get_queryset(request)
if request.user.is_superuser:
return qs.filter(is_active = True)
return qs.filter(author=request.user)
admin.site.register(User, UserAdmin)
更多详情: https : //docs.djangoproject.com/en/dev/ref/contrib/admin/#django.contrib.admin.ModelAdmin.get_queryset
这是答案,对我有用,感谢您的帮助
exclude = ('user',)
def save_form(self, request, form, change):
obj = super().save_form(request, form, change)
if not change:
obj.user = request.user
return obj
def get_queryset(self, request):
qs = super().get_queryset(request)
if request.user.is_superuser:
return qs
return qs.filter(user=request.user)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.