2016-12-21 5 views
0

デフォルトのユーザーモデルへのアクセスを妨げるものはありますか?テンプレートの外部キーモデルの値

モデル:

class Chart(models.Model): 
    title = models.CharField(max_length = 255) 
    author = models.ForeignKey(User, related_name = 'the_author') 
    created_at = models.DateTimeField(auto_now = False, auto_now_add = True) 
    updated_at = models.DateTimeField(auto_now = True, auto_now_add = False) 

    def __str__(self): 
     return self.title 

他のモデルはdjangoALLauthから、ユーザーです。私はこのモデルを作りませんでしたが、アクセスしたい「メール」フィールドを持っています。

テンプレートを構築ビュー:

def home(request): 
    """Home page handling""" 

    most_favorited_charts = Chart.objects.order_by('-favorites_count')[ :10 ] 
    newest_charts = Chart.objects.order_by('-created_at')[ :10 ] 

    context = { 
     "js_dow_data" : jsdow_data(), 
     "most_favorited_charts": most_favorited_charts, 
     "newest_charts": newest_charts, 
     "submit_value": "Save" 
    } 

テンプレート。私は上記のようにChartモデルから外部キーとして参照されるUserモデルから 'email'を取得したいと思います。ここには他の多くの人たちからの最新の試みがあります。それは何も生成しないと私は正しい構文を見つけることができません

{% for chart in most_favorited_charts %} 
         <div class="user-charts-links-div"><a class="chart-title" href="#">{{ chart.title }}</a> 

          {% for author in chart.the_author.all %} 
           Email: {{ author.the_author.email }}<br> 
          {% endfor %} 


          </div> 
         </div> 
        {% endfor %} 

答えて

0

あなたの関係はあなたがいるように見えるものとは別の方法でラウンドです:「内容:私は」メールを作成しようとするブロックを参照してください。思うそれはチャートからユーザーへ進み、それが各チャートで1本の作者を有している、とあなたは、フィールド名ではなく、逆の関係を経由してアクセス

を簡単な検索でループのためにあなたを置き換えます。

Email: {{ chart.author.email }} 
+0

ありがとう。外部キーフィールド名である 'author_id'を使用して{{chart.author_id.email}}を試しましたが、チャートインスタンスからユーザフィールドに直接アクセスできるとは想像もしませんでした。 –

+0

なぜですか?その名前のフィールドを明示的に定義しました。 –

関連する問題