djangoでtemplateにDBのデータを表示させる方法
djangoでWEBページを作成しています。
今回viewにてobjects.filter(owner=request.user.id)を使い範囲を指定した後、
templateに表示をすることにしました。
views.py
@login_required(login_url='/movieist/accounts/login/')
def profile(request):
reviewData = Review.objects.filter(owner=request.user.id)
params = {
'reviewData': reviewData,
}
return render(request, 'movieist/profile.html', params)
template
<div class="user-upside">
<!--1-->
{% for profile in reviewData %}
<p>{{profile.owner.username}}</p>
{% endfor %}
<!--2-->
<h1>{{reviewData.owner.username}}</h1>
</div>
models.py
class Review(models.Model):
owner = models.ForeignKey(User, on_delete=models.CASCADE, related_name='review_owner')
commentTitle = models.CharField(max_length=40)
comment = models.TextField()
movie_id = models.IntegerField()
good = models.IntegerField(default=0)
bad = models.IntegerField(default=0)
templateの1の{% for %}を使った場合問題なくブラウザに表紙されました。
しかし、usernameを表示させたいということもあり、繰り返しの処理はしたくありません。
そこで、templateの2を試したのですがブラウザに表示されずエラーも出ませんでした。
こういった場合どうするればいいのでしょうか?
分かる方がお見えになったらご教授いただけたらと思います。
よろしくお願いします。
0