2012-01-10 18 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相同?爲PK = request.user和PK = request.user.id在Django同樣的結果

編輯:我知道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) – 2012-01-10 14:47:20

+0

@Marcin,rebus,謝謝你。 – TheNone 2012-01-10 14:54:47