Я получаю дату вместо данных о дате и времени в POST-запросе.

У меня есть подборщик диапазона дат на моем сайте.

Когда пользователь вводит дату и временной диапазон, я хочу отправить отдельно в форме startDate и endDate

код daterangepicker:

    $('input[name="datetimes"]').daterangepicker({
        timePicker: true,
        timePickerIncrement: 5,
        startDate: moment().startOf('hour'),
        endDate: moment().startOf('hour').add(32, 'hour'),
        locale: {
          format: 'YYYY-MM-DD hh:mm'
        },
        opens: 'center',
        drops: 'auto'
    });

Вот что я попробовал:

$('#formid').submit(function(e) {
    e.preventDefault();
    let startDate = ($('#datetimes').data('daterangepicker').startDate).format('YYYY-MM-DD hh:mm');
    let endDate = ($('#datetimes').data('daterangepicker').endDate).format('YYYY-MM-DD hh:mm');
    $(this).append('<input type="hidden" name="start_date" value='+startDate+' /> ');
    $(this).append('<input type="hidden" name="end_date" value='+endDate+' /> ');
    this.submit();
});

Перед this.submit(); я сделал console.log(startDate) и вот что я получаю:

enter image description here

Я получаю дату и время (как и ожидалось), но затем, если я попробую сделать print(request.POST) в представлении (django back-end), вот что я получу:

enter image description here

Каким-то образом во время POST исчезли HH:mm.

Как я могу сохранить значения hh:mm во время POST?

Обновление:

views.py

def add_new_task(request):
    context = {}
    context['nbar'] = 'index'
    if request.method == 'POST':
        print(request.POST)
    return render(request, 'index.html', context)

models.py

class ToDoList(models.Model):
    title = models.CharField(max_length=60)
    description = models.TextField()
    start_date = models.DateTimeField()
    end_date = models.DateTimeField()
    user = models.ForeignKey(
        User,
        null=True,
        blank=True,
        on_delete=models.SET_NULL,
    )

Это долгая попытка, но возможно ли, что тот факт, что вам не хватает двойных кавычек вокруг атрибутов value в ваших скрытых вводах, является причиной проблемы?

Попробуйте изменить его на:

$(this).append('<input type="hidden" name="start_date" value="'+startDate+'" /> ');
$(this).append('<input type="hidden" name="end_date" value="'+endDate+'" /> ');
Вернуться на верх