0
私は次のコードを持っています。 これは、DjangoのRest APIを使用して画像をアップロードすることを可能にします。 どう史上により、私は、ユーザーにそれが通常行うの道(からrequest.user)Django rest APIのModelViewSetクラスからリクエストのユーザ名を取得する方法は?
view.py
class PhotoViewSet(viewsets.ModelViewSet, APIView):
permission_classes = (permissions.IsAuthenticated,)
queryset = Photo.objects.all()
serializer_class = PhotoSerializer
@receiver(post_save, sender=Photo)
def my_handler(sender, instance, **kwargs):
print request.user.username #How to make this work?
url.pyを取得することができません。このクラスの性質
router = routers.SimpleRouter()
router.register(r'avatar', PhotoViewSet, base_name='love_stackoverflow')
あなたは...信号であっても、HTTP要求が存在しない状態で発射し、モデルに保存トリガー何の知識を持つことはできませんすることはできません。 'user'を使って何かできるようにしたいのであれば、シグナルハンドラの代わりにビューメソッド/クラスでこれを行う必要があります。 – solarissmoke
権限を確認することができるので、私は考えていた。おそらく、要求しているユーザーをチェックすることも可能です。私は1つのとは違っているので、そのメソッドを使用してファイルをアップロードする方法を理解していないしかし、私は http://www.django-rest-framework.org/api-guide/parsers/#fileuploadparser この例を使用する必要があり、その場合には ModelViewSetクラスのメソッドでは、APIのページにはブラウズオプションがありません。 (私は似たような質問をたくさん見てきましたが、まだ方法を見つけるのが難しいですが、カールはしばしば示唆されていますが、うまくいきません) –
'permissions.isAuthenticated'はビュークラス内でチェックされています。リクエスト。あなたはシグナルハンドラはしません(そうすべきではありません)。あなたのロジックをハンドラからビューコード自体に移すことは可能であるべきです。 – solarissmoke