2016-07-01 2 views
0

からレンダリング、1から1人の関係にデータを表示することができず、このような私のPROFILEモデル:はただDjangoの認証ユーザーモデル を使用して一つのモデル

// models.py 
from django.db import models 
from django.contrib.auth.models import User 

class PROFILE(models.Model): 
    userID = models.OneToOneField(
     User, 
     on_delete=models.CASCADE, 
     primary_key=True 
    ) 
    idCity_FK = models.ForeignKey(CITY) 

そして、私のビューには、現在の情報を表示しますユーザー:

//views.py 
class ViewProfile_vw(DetailView): 
    template_name = 'profile.html' 

    def get_object(self): 
     currentUser = self.request.user 
     return get_object_or_404(PROFILE, userID=currentUser.id) 

そして、両方のモデルからフィールドをレンダリングするために私のhtmlファイル:

//profile.html 
<h1>Hello {{ object.email }}</h1> 
<p>City:{{ object.idCity_FK }}</p> 

私のブラウザには都市の名前しか表示されませんが、電子メールは表示されません。ユーザーは電子メールを持ち、「1対1」のフィールドには同じIDが表示されます。

ユーザーモデルからデータを表示するにはどうすればよいですか?

+1

'{{object.userID.email}}'を試しましたか? –

答えて

1

あなたは電子メールフィールドがないためです。 Djangoの認証を使用している場合、Django Userクラスにはにメールがあるので、object.userID.emailでアクセスできます。

フィールド名にIDを含めることは、id、オブジェクトの関係ではないので、注意してください。

+1

それは完全に動作します! 実際に私は名前に "id"を含めませんでした。それは私のコードの一例に過ぎず、私は自分のことを最善の方法で説明しようとしていました。しかし、オブジェクトの関係についてのあなたのコメントは、私がそれをより良く理解できるようにします。 – QUHO

関連する問題