質問編集履歴

1

参考URL追加、code追加

2020/05/17 08:38

投稿

ktg_st
ktg_st

スコア33

test CHANGED
File without changes
test CHANGED
@@ -1,4 +1,4 @@
1
- 参考ページ
1
+ 参考ページ⇒https://narito.ninja/blog/detail/126/
2
2
 
3
3
 
4
4
 
@@ -8,7 +8,23 @@
8
8
 
9
9
  やりたいこと:
10
10
 
11
- 参考ペジで各日の項目に入力保存すると新しいfrom作成されるようになっています。
11
+ 下記コドだと、各日に予定を入力する新規フォームが設置されていますが、予定を保存すると更に規フォーム追加されます。
12
+
13
+ 予定未保存⇒新規フォームのみ  予定保存済⇒新規フォーム、更新フォーム
14
+
15
+ って感じです。
16
+
17
+ 予定未保存⇒新規フォームのみ  予定保存済⇒更新フォーム
18
+
19
+ と変更したいのですが、どうすればいいのか分かりません。
20
+
21
+
22
+
23
+ 説明下手ですいません。
24
+
25
+
26
+
27
+
12
28
 
13
29
  下記画像
14
30
 
@@ -16,9 +32,7 @@
16
32
 
17
33
  ![イメージ説明](4472281421e842f1b603eca0af3b0126.jpeg)
18
34
 
19
- それを1日1項目のみ表示し、1日1項目だけ保存されるようにしたい。用は追加を出ないようにしたいんです。
35
+
20
-
21
- フォームが表示されていてもそれが更新フォームであれば良いのですが、、、。
22
36
 
23
37
  ```
24
38
 
@@ -194,7 +208,167 @@
194
208
 
195
209
  ```
196
210
 
211
+ ```
212
+
213
+ models.py
214
+
215
+
216
+
217
+ SUB_START = (
218
+
219
+ ('0', '✕'),
220
+
221
+ ('1', '14'),
222
+
223
+ ('2', '16'),
224
+
225
+ ('3', '17'),
226
+
227
+ ('4', '17.5'),
228
+
229
+ ('5', '18'),
230
+
231
+ ('6', '18.5'),
232
+
233
+ ('7', '19'),
234
+
235
+ ('8', '19.5'),
236
+
237
+ ('9', '20'),
238
+
239
+ ('10', '〇'),
240
+
241
+ )
242
+
243
+ SUB_END = (
244
+
245
+ ('0', '✕'),
246
+
247
+ ('1', '22'),
248
+
249
+ ('2', '23'),
250
+
251
+ ('3', '〇'),
252
+
253
+
254
+
255
+ )
256
+
257
+ class Schedule(models.Model):
258
+
259
+
260
+
261
+ """スケジュール"""
262
+
263
+ user = models.ForeignKey(settings.AUTH_USER_MODEL, verbose_name='ユーザー', on_delete=models.SET_NULL, blank=True, null=True)
264
+
265
+ start_time = models.CharField('開始時間', choices= SUB_START, max_length=50,blank=True,default="0")
266
+
267
+ end_time = models.CharField('終了時間', choices= SUB_END, max_length=50,blank=True,default="0")
268
+
269
+ date = models.DateField('日付')
270
+
271
+ # created_at = models.DateTimeField('作成日', default=timezone.now)
272
+
273
+
274
+
275
+ def __int__(self):
276
+
277
+ return self.date
278
+
279
+
280
+
281
+
282
+
283
+ ```
284
+
285
+ ```
286
+
287
+ forms.py
288
+
289
+
290
+
291
+ from django import forms
292
+
293
+ from .models import Schedule
294
+
295
+
296
+
297
+
298
+
299
+ class BS4ScheduleForm(forms.ModelForm):
300
+
301
+ """Bootstrapに対応するためのModelForm"""
302
+
303
+
304
+
305
+ class Meta:
306
+
307
+ model = Schedule
308
+
309
+ fields = ('start_time', 'end_time')
310
+
311
+ widgets = {
312
+
313
+
314
+
315
+ 'start_time': forms.TextInput(attrs={
316
+
317
+ 'class': 'form-control',
318
+
319
+ }),
320
+
321
+ 'end_time': forms.TextInput(attrs={
322
+
323
+ 'class': 'form-control',
324
+
325
+ }),
326
+
327
+ }
328
+
329
+
330
+
331
+ def clean_end_time(self):
332
+
333
+ start_time = self.cleaned_data['start_time']
334
+
335
+ end_time = self.cleaned_data['end_time']
336
+
337
+ if end_time <= start_time:
338
+
339
+ raise forms.ValidationError(
340
+
341
+ '終了時間は、開始時間よりも後にしてください'
342
+
343
+ )
344
+
345
+ return end_time
346
+
347
+
348
+
349
+
350
+
351
+ class SimpleScheduleForm(forms.ModelForm):
352
+
353
+ """シンプルなスケジュール登録用フォーム"""
354
+
355
+
356
+
357
+ class Meta:
358
+
359
+ model = Schedule
360
+
361
+ fields = ('start_time', 'end_time', 'date')
362
+
363
+
364
+
365
+ 'date': forms.HiddenInput,
366
+
367
+ }
368
+
369
+ ```
370
+
197
- codeないのコメントは参考ページ内でのコメントです。
371
+ codeのコメントは参考ページ内でのコメントです。
198
372
 
199
373
 
200
374