2017-05-05 98 views
-3

我有一個與每個Django用戶關聯的模型User_Details。它有一個名爲mobile_number的字段。我想訪問我的模板中的mobile_number。我正在嘗試request.user.User_Details.mobile_number,但它不起作用。這是正確的方式嗎?如果不是,那我應該怎麼辦呢?訪問模板中與django用戶關聯的模型的字段

+0

我們不能說,因爲你沒有在你的問題中包括模型。將其更改爲'request.user.user_details.mobile_number'可能有效。 – Alasdair

+0

你爲什麼需要這個? –

+0

您是否真的在問我們爲什麼需要您詢問的模型細節? –

回答

0

試試這個(我假設index.html作爲模板,這是正確的urls.py設置):

from django.contrib.auth.models import User 

def index(request): 
    template = loader.get_template('index.html') 
    user_details = User_Details.objects.get(user=User.objects.get(username=request.user.username)) 

    context = RequestContext(request, {'mobile_no':user_details.mobile_number,} 
    return HttpResponse(template.render(context)) 

工作,如果你有一個用戶對象(django.contrib.auth.models)您User_Details型號

class User_Details(models.Model): 
    user = models.OneToOneField(User) 
    mobile_number = models.CharField(... 
在您的index.html或任何模板使用

{{mobile_no}} 

到DISPL

然後唉信息

+0

我知道這種方法,但我想直接在我的模板中使用'request.user'來完成此操作。 –

+0

您必須訪問服務器端的數據庫,這意味着您必須將請求發送到django後端。你是什​​麼意思「直接在模板」? HTTP身份驗證模型不知道有關您的User_Details的任何信息。它們存儲在數據庫中 – EvilSmurf

0

其defficult告訴不看你的模型,但我想你可以使用在OneToOneFieldrelated_name並直接訪問它。

class User_Details(models.Model): 
    user = models.OneToOneField(User, related_name="detail") 
    mobile_number = models.CharField(... 

然後 request.user.detail.mobile_number訪問它。 希望它有幫助

相關問題