2013-11-20 23 views
1

我正在設計一個使用Django 1.5的博客。 爲評論功能,我計劃使用ajax後JSON數據到服務器。 在我的博客只有註冊用戶可以發表評論,這意味着所有用戶登錄如何得到一個Django Ajax帖子用戶

我angularjs使用1.2 $ HTTP頁面發佈AJAX數據

,因爲我不知道很多關於JSON。在JSON數據,我只發表評論數據,不包括其他用戶的信息。我的問題是,我可以得到用戶對象使用此代碼

user = User.objects.get(user=request.user) 

這樣,我就會知道是誰發佈此評論。 如果它不能,我如何獲取Django中的用戶對象。 在其他地方我看到人們用這種方式

<input type="hidden" name="user_id" value="{{ user.id }}" /> 

和後期使用Ajax的user.id。 我不認爲這是一個好方法。

任何人知道一個更好的解決方案

回答

2

request.user已經是一個User對象。你可以直接使用它。如果你只需要使用編號request.user.pk

我同意使用從瀏覽器收到的用戶標識確實不是一個好主意 - 這些信息很容易被欺騙。 request.user是關於當前用戶的正確信息源。

+0

也就是說,不管是ajax json還是普通的發佈data.i的方法都可以使用(request.user)來獲取用戶對象,以防用戶已經登錄了嗎? – zzlettle

+0

這是正確的。 –

1

在HTML模板中暴露用戶ID不是一個好主意。 無論如何,ajax調用還應該在請求中發送會話cookie。因此,django認證/會話框架應該爲您透明地處理認證事務(假設您正在使用會話和認證模塊中的構建)。就像Ludwik所說,只需在你的服務器上訪問request.user,你應該很好。

+0

謝謝。現在我知道如何處理json .i認爲json是純數據,它不包含任何其他信息,這就是爲什麼我在這裏要求這篇文章。 – zzlettle