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

MyUser.objects.get(pk=request.user)MyUser.objects.get(pk=request.user.id) 나에게 동일한 결과를 제공합니다. doc에서 pk는 int 여야합니다. 그러나 request.user는 객체입니다. 객체와 사용자 ID에 대한 쿼리가 같은 이유는 무엇입니까?같은 결과는

편집 : request.user는 객체이지만 그 결과가 같은 이유를 알고 싶습니다. 사전

답변

9

에서

덕분에 이것은 의도적으로 설계된 동작입니다 - 쿼리에 매개 변수로 모델 객체를 전달하면, 그것의 기본 키를 전달하는 것과 동일합니다.

이 동작이 아닌 경우 pk를 전달하거나 오류가 발생하면 성가신 일입니다. https://code.djangoproject.com/browser/django/trunk/django/db/models/fields/related.py#L175

+4

+1 [원문 기준 (https://code.djangoproject.com/browser/django/trunk/django/db/models/fields/ : 소스이 참조에 수수께끼

감사 related.py # L175) –

+0

@Marcin, rebus, anwsers에게 감사드립니다. – TheNone