Django2の勉強中のものです。

###

今、Python3 / Django2 / Pillow で画像管理サイトを作っているのですが、
画像1枚1枚に対して、ユーザー毎に閲覧制限をかけたいと思っています。

試行錯誤で、django の view.py の中で pillow と bytesIO を使って、
何となく実現の方向は見えてきました。
閲覧権限が満たされていたら、pillowで画像ファイルをopenし、
byteIOへsave、そして、byteIO.getvalueで HTTPResponse に書き出しと
1枚の画像のHTTPResponseを返すのに手間がかかりすぎているように感じてます。

###

もっとスマートに「画像ごとにユーザー閲覧権限」をかける方法はないでしょうか。
アドバイスをいただけますと、嬉しいです。