2012-01-10 14 views
6
class MyUser(User): 
    job = ... 
    city = .... 

MyUser.objects.get(pk=request.user) y MyUser.objects.get(pk=request.user.id) dame el mismo resultado. De doc, pk debe ser un int. Pero request.user es un objeto. ¿Por qué las consultas son las mismas para la identificación de objeto y usuario?mismo resultado para pk = request.user y pk = request.user.id en Django

editar: Sé que request.user es un objeto pero quiero saber por qué los resultados son los mismos.

Gracias de antemano

Respuesta

9

Esto es por diseño - si se pasa un objeto de modelo como parámetro a una consulta, es el mismo que el que pasa su clave primaria.

Si este no era el comportamiento, se requeriría pasar el pk o un error que simplemente sería molesto.

Gracias a rebus para esta referencia a la fuente: https://code.djangoproject.com/browser/django/trunk/django/db/models/fields/related.py#L175

+4

1, [referencia Fuente] (https://code.djangoproject.com/browser/django/trunk/django/db/models/fields/ related.py # L175) –

+0

@Marcin, rebus, gracias por el vendedor. – TheNone

Cuestiones relacionadas