質問編集履歴

2

原因の判明

2020/07/31 03:20

投稿

keraker
keraker

スコア46

test CHANGED
File without changes
test CHANGED
@@ -149,3 +149,113 @@
149
149
 
150
150
 
151
151
  よろしくお願いします。
152
+
153
+
154
+
155
+ ### 追記
156
+
157
+
158
+
159
+ 使っているのはBooleanFieldなのですが、どうやらチェックボックスはチェックされていないときはなにも送信しないようです。また同じname属性をもつformは一番最後の値が適用されるために連動してしまっているようでした。
160
+
161
+ ```
162
+
163
+ class SendForm(forms.ModelForm):
164
+
165
+ class Meta:
166
+
167
+ model = Friend
168
+
169
+ fields = ['gender',]
170
+
171
+ ```
172
+
173
+
174
+
175
+ 強引ですが、hiddenのformではさむことで値を特定したあと、以下の関数でQueryDictをつくり直接渡してみました。もっとスマートなやり方を教えていただければ幸いです。
176
+
177
+
178
+
179
+ ```
180
+
181
+ index.html
182
+
183
+
184
+
185
+ <input type="hidden" name="gender" value="/"/>
186
+
187
+ {{ Send_Form.as_p }}{% csrf_token %}
188
+
189
+ <input type="hidden" name="gender" value="/"/>
190
+
191
+
192
+
193
+ ```
194
+
195
+
196
+
197
+ ```
198
+
199
+ view.py
200
+
201
+
202
+
203
+ boxlist=self.checkbox_list(request.POST.getlist('gender'))
204
+
205
+ for i,o in enumerate(self.data):
206
+
207
+ Send_Form = self.Send_Form_class(boxlist[i], instance=o)
208
+
209
+ Send_Form.save()
210
+
211
+
212
+
213
+ def checkbox_list(self, list):
214
+
215
+ boxlist=[]
216
+
217
+ flag=True
218
+
219
+ next=False
220
+
221
+ on=QueryDict( "gender=on")
222
+
223
+ off=QueryDict()
224
+
225
+ #"/"ではさまれていればon "/"が二回続けばoff
226
+
227
+ for box in list:
228
+
229
+ if next:
230
+
231
+ next=False
232
+
233
+
234
+
235
+ elif box=="/" and flag:
236
+
237
+ flag=False
238
+
239
+
240
+
241
+ elif box=="/" and not flag:
242
+
243
+ boxlist.append(off)
244
+
245
+ flag=True
246
+
247
+ else:
248
+
249
+ boxlist.append(on)
250
+
251
+ flag=True
252
+
253
+ next=True
254
+
255
+
256
+
257
+ return boxlist
258
+
259
+
260
+
261
+ ```

1

追加

2020/07/31 03:20

投稿

keraker
keraker

スコア46

test CHANGED
File without changes
test CHANGED
@@ -78,15 +78,17 @@
78
78
 
79
79
  <tr>
80
80
 
81
- <th class="py-1">title</th>
81
+ <th class="py-1">form</th>
82
82
 
83
- <th class="py-1">title</th>
83
+ <th class="py-1">gender</th>
84
84
 
85
85
  <th class="py-1">name</th>
86
86
 
87
- <th class="py-1">datetime</th>
87
+ <th class="py-1">mail</th>
88
88
 
89
89
  </tr>
90
+
91
+ <!-- ここでレコードのかずだけformをつくりたい-->
90
92
 
91
93
  {% for item in data %}
92
94