Django Model Admin

Как я могу отобразить в Model Admin только пользователя, вошедшего в систему, а не всех пользователей?

Models.py user = models.ForeignKey(User,db_column="user",null = True, on_delete = models.SET_NULL)

Admin.py

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 и не иметь возможности видеть или изменять других пользователей?

Заранее большое спасибо

Надеюсь, это поможет:-

Вам нужно отфильтровать, в соответствии с вашим ключом

admin.py

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)
Вернуться на верх