質問編集履歴

2

エラーメッセージの追加

2020/06/08 23:58

投稿

tonytony
tonytony

スコア11

test CHANGED
@@ -1 +1 @@
1
- django filter関数およびall()でエラーが出てまう問題につ
1
+ django Userオブジェクトをfilterしてtemplateに渡
test CHANGED
@@ -99,3 +99,7 @@
99
99
  {% endblock %}
100
100
 
101
101
  ```
102
+
103
+ ![イメージ説明](1bfe45b8a4008c4513400a7c7d45dbd4.png)
104
+
105
+ ![イメージ説明](d115fdfc0f65a3da3d448f5751ea4071.png)

1

コードの追加

2020/06/08 23:58

投稿

tonytony
tonytony

スコア11

test CHANGED
File without changes
test CHANGED
@@ -10,10 +10,92 @@
10
10
 
11
11
  users変数に格納されているデータ型が悪いのでしょうか?
12
12
 
13
+ view内でやっていることは、Userオブジェクトを全てリストにしてusersに代入し、それをfilterにかけたあと、match_usersにlist型にして格納。その後それをcontextに渡している。という感じです。
14
+
13
15
  知見のある方、お力貸していただけると幸いです。
14
16
 
15
17
 
16
18
 
17
- ![イメージ説明](6258353d9479ed86734d3996e46ef480.png)
19
+ ```viws.py
18
20
 
21
+ class HomeView(LoginRequiredMixin, View):
22
+
23
+
24
+
25
+ def get(self, request, *args, **kwargs):
26
+
27
+ # 自分以外、異性、すでにいいね悪いねしてない人の三つで絞る
28
+
29
+ def example(user):
30
+
31
+ if user.id != request.user.id and user.profile.gender != request.user.profile.gender:#すでにいいねしている人を省く
32
+
33
+ return True
34
+
35
+ else:
36
+
37
+ return False
38
+
39
+ users = list(User.objects.all())
40
+
41
+ match_users = list(filter(example, users))
42
+
43
+ context = {
44
+
45
+ 'match_users': match_users
46
+
47
+ }
48
+
49
+
50
+
19
- ![イメージ説明](2f78e4ad2000dd486e0749885149a14c.png)
51
+ return render(request, 'home.html', context)
52
+
53
+ ```
54
+
55
+
56
+
57
+ ```home.html
58
+
59
+ <!doctype html>
60
+
61
+ {% extends "base.html" %}
62
+
63
+
64
+
65
+ {% block content %}
66
+
67
+
68
+
69
+ <title>pairnite(仮称)</title>
70
+
71
+ </head>
72
+
73
+ <body>
74
+
75
+ <h1>ここはログイン後の一覧ページです。</h1>
76
+
77
+ <div>
78
+
79
+ <h3>{{ request.user.profile.user_name }}</h3>
80
+
81
+ <a class="btn btn-primary" href="{% url 'users:detail' request.user.pk %}" role="button">自分の詳細ページ</a>
82
+
83
+ </div>
84
+
85
+ {% for request.user in request.user %}
86
+
87
+ { request.user.profile.user_name }
88
+
89
+ {% endfor %}
90
+
91
+ {% for match_user in match_users_lists %}
92
+
93
+ { match_user.profile.user_name }
94
+
95
+ {% endfor %}
96
+
97
+
98
+
99
+ {% endblock %}
100
+
101
+ ```