是否有推薦的方法將變量傳遞給我的所有視圖?就我而言,我想傳遞一個UserProfile對象,該對象是一個django.contrib.auth.models.User對象。我發現大部分(如果不是全部)我的視圖需要拉取UserProfile對象並將它放入Middleware看起來就像是要走的路。好像我可以做類似如下(我見過一對夫婦的解決方案,在線的暗示吧):在不使用request.session的情況下將自定義變量添加到Django Middleware中的請求對象中
request.session['userprofile'] = userprofile_object
我不喜歡這一點,因爲如果我的用戶配置模型曾經有一個非序列化字段,它會打破request.session。
是的,有多種方式可以獲取UserProfile對象。你也可以做UserProfile.objects.filter(user = request.user),但是這並不回答這個問題,你如何將它傳遞給視圖? – jsw 2012-03-01 23:20:37
也許我誤解了你的問題。因爲每個視圖都獲取作爲第一個參數傳入的請求,所以不需要將該配置文件「傳遞」到視圖中。如果你想在每個模板上都有一個userprofile變量,你可以考慮一個自定義的context_processor,它將userprofile_object放入一個變量中。 – Jingo 2012-03-01 23:29:13
我相信'prof = request.user.userprofile_object_set.all()[0]'每次調用時都會觸發數據庫? – user9876 2012-10-08 16:16:15