def record_update(request, journal_id, record_id): journal = get_object_or_404(Journal, pk=journal_id) form = RecordForm(request.POST or journal.get_record_data(record_id), extended_stat=journal.extended_stat) if request.POST and form.is_valid(): journal.set_record_data(form.cleaned_data, record_id) # если нажали кнопку Применить и выйти, то переходим к журналу if request.POST['submit'] == 'af': return redirect('statistics:show', journal_id=journal_id) # если Применить и меняется день: else: days_cnt = int(request.POST['submit']) new_date = datetime.strptime( request.POST['date'], '%d.%m.%Y') + timedelta(days_cnt) rec = journal.rec_on_date(new_date) if rec: return redirect( 'statistics:record_edit', journal_id=journal.id, record_id=rec.id, ) else: form = RecordForm( None, extended_stat=journal.extended_stat, initial={'date': new_date.strftime('%d.%m.%Y')} ) return render(request, 'statistics/record_form.html', {'form': form, 'journal': journal, 'record_id': None}) return render(request, 'statistics/record_form.html', {'form': form, 'journal': journal, 'record_id': record_id})
def simple_record_create(request, journal_id): journal = get_object_or_404(Journal, pk=journal_id) if request.is_ajax(): form = RecordForm(request.POST, extended_stat=journal.extended_stat) if form.is_valid(): rec = journal.set_record_data(form.cleaned_data) response = {'journal_id': journal.id, 'work': rec.work, 'rec_id': rec.id, } else: response = "bad Record data" else: response = "not AJAX!" return JsonResponse(response)
def record_create(request, journal_id): journal = get_object_or_404(Journal, pk=journal_id) # Подготовить форму либо на основе данных POST, либо # если этот словарь пустой, инициализировать новую форму form = RecordForm(request.POST or None, extended_stat=journal.extended_stat) # Рендерим форму если словарь POST пустой (пришли по GET), # проверяем и записываем данные, если пришли по POST if request.POST and form.is_valid(): journal.set_record_data(form.cleaned_data) # если нажали кнопку Применить и выйти, то переходим к журналу if request.POST['submit'] == 'af': return redirect('statistics:show', journal_id=journal_id) # если Применить и меняется день: else: days_cnt = int(request.POST['submit']) new_date = datetime.strptime(request.POST['date'], '%d.%m.%Y') + timedelta(days_cnt) rec = journal.rec_on_date(new_date) if rec: return redirect( 'statistics:record_edit', journal_id=journal.id, record_id=rec.id, ) else: form = RecordForm( None, extended_stat=journal.extended_stat, initial={'date': new_date.strftime('%d.%m.%Y')} ) return render( request, 'statistics/record_form.html', {'form': form, 'journal': journal, 'record_id': None}) return render(request, 'statistics/record_form.html', {'form': form, 'journal': journal, 'record_id': None})