Es de suponer que tiene sesiones y el modelo de autenticación activado.
Debe asegurarse de que todas las vistas (REST y sin REST) requieren autenticación.
Para no REST, es fácil. Simplemente use un decorador básico @login-required
en todas partes.
Para el marco Django-REST, lea esto: http://django-rest-framework.org/library/authentication.html#module-authentication.
Debe usar la combinación de autenticación para asegurarse de que la autenticación realmente ocurrió.
El marco es compatible con la autenticación BASIC, que requiere una conexión SSL para estar seguro. No es demasiado difícil implementar la autenticación DIGEST, que no requiere SSL.
Evite las sesiones. Viola el principio de REST para iniciar sesión y cerrar sesión. El marco admite sesiones, pero es menos que ideal.
Una vez que haya autenticado todas las solicitudes, conocerá al usuario.
Si conoce al usuario, entonces user.video_set
funciona perfectamente. También puede usar Video.objects.filter(...)
para asegurarse de consultar al usuario, pero es más fácil confirmar que el código es correcto si trabaja con user.video_set.get(...)
o user.video_set.filter()
o lo que sea.
Todas las comprobaciones de autorizaciones relevantes se realizan en Vistas. Estás proporcionando vistas para tus recursos de modelo.
Estas son "vistas basadas en clase". La documentación está aquí: https://docs.djangoproject.com/en/dev/topics/class-based-views/#viewing-subsets-of-objects
El truco consiste en seleccionar todos los mezcladores y serializadores correctos.
Por ejemplo, se puede mezclar conseguir el procesamiento de esta manera:
http://django-rest-framework.org/howto/mixin.html
podrás aplicar el filtro en el get
método
¿Cómo se define el usuario "propiedad" de un objeto? Incluya suficientes modelos para que podamos ver de lo que está hablando. –
@ S.Lott recién actualizado para incluir esto. –