Djangoでマッチングアプリを作成しております。
やりたいこととしては、Userモデルから全てのユーザー情報を取得し、自分以外・異性の条件でfilterで引っ張ってきて、それを一覧でtemplateに載せたいんですが、ハマってしまいました。
デバッグツールを回したところ、数値の取得はできていると思います。
users変数に格納されているデータ型が悪いのでしょうか?
view内でやっていることは、Userオブジェクトを全てリストにしてusersに代入し、それをfilterにかけたあと、match_usersにlist型にして格納。その後それをcontextに渡している。という感じです。
知見のある方、お力貸していただけると幸いです。
viws.py
1class HomeView(LoginRequiredMixin, View): 2 3 def get(self, request, *args, **kwargs): 4 # 自分以外、異性、すでにいいね悪いねしてない人の三つで絞る 5 def example(user): 6 if user.id != request.user.id and user.profile.gender != request.user.profile.gender:#すでにいいねしている人を省く 7 return True 8 else: 9 return False 10 users = list(User.objects.all()) 11 match_users = list(filter(example, users)) 12 context = { 13 'match_users': match_users 14 } 15 16 return render(request, 'home.html', context)
home.html
1<!doctype html> 2{% extends "base.html" %} 3 4{% block content %} 5 6 <title>pairnite(仮称)</title> 7 </head> 8 <body> 9 <h1>ここはログイン後の一覧ページです。</h1> 10 <div> 11 <h3>{{ request.user.profile.user_name }}</h3> 12 <a class="btn btn-primary" href="{% url 'users:detail' request.user.pk %}" role="button">自分の詳細ページ</a> 13 </div> 14 {% for request.user in request.user %} 15 { request.user.profile.user_name } 16 {% endfor %} 17 {% for match_user in match_users_lists %} 18 { match_user.profile.user_name } 19 {% endfor %} 20 21 {% endblock %}
回答2件
あなたの回答
tips
プレビュー