質問編集履歴

1

コードを追記

2016/04/03 13:56

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -92,11 +92,51 @@
92
92
 
93
93
  ・上記表示用リストをテンプレートでレンダリングして表示する。
94
94
 
95
+ 考えてみたコードは、下記のとおりです。
96
+
97
+ ```python
98
+
99
+ #views.py
100
+
101
+ def index(request):
102
+
103
+ latest_question_list = Question.objects.order_by('-datetime')[:10] #直近10個の質問に絞り込み
104
+
105
+ questionIdList = [] #上記10個の質問のIDを格納するリスト
106
+
107
+ for question in latest_question_list:
108
+
109
+ questionIdList.append(question.id)
110
+
111
+ displayList = [] #レンダリング用のリスト
112
+
113
+ for id in questionIdList:
114
+
115
+ contentListForQuestion = [] #質問毎に要素を格納するためのリスト
116
+
117
+ question = Question.objects.get(id=id) #IDから質問を呼び出す
118
+
119
+ contentListForQuestion.append(question.title) #質問タイトルを格納
120
+
121
+ contentListForQuestion.append(question.content) #質問内容を格納
122
+
123
+ contentListForQuestion.append(question.votes) #質問の評価を格納
124
+
125
+ contentListForQuestion.append(question.datetime) #質問日時を格納
126
+
127
+ contentListForQuestion.append(len(Answer.objects.filter(question=id)))) #質問に対する回答投稿数を格納
128
+
129
+ displayList.append(contentListForQuestion)
130
+
131
+ ```
132
+
133
+
134
+
95
135
 
96
136
 
97
137
  上記2つの方法のうち、1つ目は簡単に実装できると思います。しかし、なんとなく、スマートではないと思います。何らかのエラーで、実際の回答数と不整合が生じるリスクもあるので、嫌な感じもします。
98
138
 
99
- そのため、私は、2つ目の方法の方が本来あるべき方法なのではないかと思います。ただ、Questionモデルのデータのみであれば、単純に表示用のリストを作成することができたのに、複数のモデルからデータを引っ張ってくるために、急に複雑になってしまうので、もっとシンプルな方法が存在するのではないかと思いました。
139
+ そのため、私は、2つ目の方法の方が本来あるべき方法なのではないかと思います。ただ、Questionモデルのデータのみであれば、単純に表示用のリストを作成することができたのに、複数のモデルからデータを引っ張ってくるために、上記のように急に複雑になってしまうので、もっとシンプルな方法が存在するのではないかと思いました。
100
140
 
101
141
 
102
142