katsumasa0514
@katsumasa0514 (ASAP k)

Are you sure you want to delete the question?

Leaving a resolved question undeleted may help others!

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

1Answer

Comments

  1. @katsumasa0514

    Questioner

    その通りですね。
    参考まで載せていただきありがとうございました。

Your answer might help someone💌