2017-05-05 3 views
-3

私はモデルを各Djangoユーザに関連付けました。フィールドにはmobile_numberというフィールドがあります。私はテンプレート内のmobile_numberにアクセスしたいと思います。私はrequest.user.User_Details.mobile_numberを試していますが、動作していません。それは正しい方法ですか?そうでなければ、どうすればいいのですか?テンプレート内のdjangoユーザに関連付けられたモデルからのフィールドへのアクセス

+0

あなたの質問にモデルを含めていないため、私たちにはわかりません。これを 'request.user.user_details.mobile_number'に変更すると動作するかもしれません。 – Alasdair

+0

なぜそれが必要ですか? –

+0

あなたが求めているモデルの詳細がなぜ必要なのか真剣に尋ねていますか? –

答えて

0

(私はきちんとurls.pyに設定されているテンプレート、などのindex.htmlを想定しています)、これを試してみてください:で

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または任意のテンプレートにdisplに

{{mobile_no}} 

を使用しますayの情報

+0

私はこの方法を知っていますが、テンプレートで直接 'request.user'を使ってこれをやりたかったのです。 –

+0

あなたはサーバーサイドでデータベースにアクセスする必要があります。つまり、リクエストをdjangoバックエンドに送る必要があります。あなたは「テンプレートの中で直接」をどういう意味ですか? HTTP認証モデルはUser_Detailsについて何も知らない。それらはデータベースに保存されます – EvilSmurf

0

あなたのモデルを見ずに教えてもらえませんでしたが、OneToOneFieldrelated_nameを使用して直接アクセスすることができます。それにアクセスするための

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

その後、 request.user.detail.mobile_number。 お手伝いします

関連する問題