acceder a "request.user.id" desde de un modelo

169 views
Skip to first unread message

enri57ar

unread,
May 19, 2008, 4:12:18 PM5/19/08
to Django-es
Hola quiero hacer algo como esto:

Class Mensaje(models.Model):
mensaje = ...

enri57ar

unread,
May 19, 2008, 4:17:49 PM5/19/08
to Django-es
Perdon....

from django.contrib.auth.models import User

Class Mensaje(models.Model):
mensaje = ...
user_id = models.ForeignKey(User)

def save(self):
user_id = request.user.id
super(Mensaje, self).save()

en resumen, quiero poder acceder a "request.user.id" y
"request.group.id" desde un model, editando el models.py unicamente.

Leo Soto M.

unread,
May 19, 2008, 4:26:11 PM5/19/08
to djan...@googlegroups.com
2008/5/19 enri57ar <enri...@gmail.com>:

Y por qué?

El modelo no tiene idea de lo que es un request. Y esto es bueno, pues
así puedes usar tu modelo en otros programas, como scripts que se
ejecuten periódicamente.

Por otra parte, las vistas son justamente intermediarios entre "HTTP"
y los modelos.

Lo que quiero decir, es que asignar el usuario correcto para el
mensaje es tarea de la vista. O tal vez tienes algun requerimiento
fuera de lo corriente y lo que necesites sea programar un simple
middleware. Pero tendrías que dar mas detalles para ayudarte.

Saludos,
--
Leo Soto M.
http://blog.leosoto.com

enri57ar

unread,
May 19, 2008, 4:37:44 PM5/19/08
to Django-es
On May 19, 5:26 pm, "Leo Soto M." <leo.s...@gmail.com> wrote:
> 2008/5/19 enri57ar <enri5...@gmail.com>:
>
>
>
> > Perdon....
>
> > from django.contrib.auth.models import User
>
> > Class Mensaje(models.Model):
> >    mensaje = ...
> >    user_id = models.ForeignKey(User)
>
> >    def save(self):
> >        user_id = request.user.id
> >        super(Mensaje, self).save()
>
> > en resumen, quiero poder acceder a "request.user.id" y
> > "request.group.id" desde un model, editando el models.py unicamente.
>
> Y por qué?

Quiero mantener la bussiness logic dentro de models.py y ademas porque
si.

enri57ar

unread,
May 19, 2008, 4:41:37 PM5/19/08
to Django-es
> si.- Hide quoted text -
>

Aca encontre una posible solucion.

http://code.djangoproject.com/wiki/CookBookThreadlocalsAndUser

enri57ar

unread,
May 19, 2008, 5:11:08 PM5/19/08
to Django-es
> http://code.djangoproject.com/wiki/CookBookThreadlocalsAndUser- Hide quoted text -
>
> - Show quoted text -


Funciona!, Gracias enri57ar.

Tomás Casquero

unread,
May 20, 2008, 2:02:52 AM5/20/08
to djan...@googlegroups.com
Te das las gracias a ti mismo?.... o es <ironia> ?

Porque si.

saludos.

2008/5/19 enri57ar <enri...@gmail.com>:



--
Saludos

Tomás Casquero
Ubuntu User # 9484
http://tomascasquero.com/
Reply all
Reply to author
Forward
0 new messages