Хотите разрешить пользователю выбирать дату и время, используя модель и формы django - PullRequest
0 голосов
/ 17 октября 2019

У меня есть модель Django, которая записывает дату и время бронирования. и я не могу создать средство выбора даты и времени!

Я создал модель и форму, которая позволяет выбирать дату, но не время.

models.py

from django.db import models
from django.contrib.auth.models import User
# Create your models here.

class Reservation(models.Model):
    LastName = models.CharField(max_length=100)
    FirstName = models.CharField(max_length=100)
    ReserveDate = models.DateTimeField()
    Time = models.TimeField()

form.py

from django import forms
from .models import Reservation
from datetime import datetime


class DateInput(forms.DateInput):
    input_type = 'date'


class TimeInput(forms.TimeInput):
    input_type = 'time'


class ReservationForm(forms.ModelForm):
    class Meta:
        model = Reservation
        fields = ['LastName', 'FirstName', 'ReserveDate', 'Time']
        widgets = {
           'ReserveDate':DateInput(),
           'Time':TimeInput(),
        }

Reservation.html

{% extends 'base.html' %}
{% load crispy_forms_tags %}
{% block content %}
<style>
    .asteriskField {
      display: none;
    }
</style>
<div class="row justify-content-center">
    <div class="col-6">
        <div class="card">
            <div class="card-body">
                <h2>
                    Contact
                </h2>
                <form action="" method="post" novalidate>
                    {% csrf_token %}
                    {{ form|crispy }}
                    <input type="submit" class="btn btn-secondary" value="Create" />

                </form>
            </div>  
          </div>
      </div>
</div>
{% endblock %}

Я хочу увидетьдата и время в поле выбора даты и времени

1 Ответ

0 голосов
/ 17 октября 2019

Установка

  • Выполнить pip install django-datetimepicker
  • Добавить 'datetimepicker' к вашему INSTALLED_APPS

Основное использование

Здесьпример использования виджета. Дополнительные примеры можно найти в примере проекта.

  1. Назначьте DateTimePicker для DateTimeField, DateField или TimeField.
from django import forms
from datetimepicker.widgets import DateTimePicker


class SampleForm(forms.Form):

datetime = forms.DateTimeField(
widget=DateTimePicker(),
)

Будет отображаться следующий html код:

<div class=" date input-group" id="datetimepicker_id_datetime">
<input class=" form-control" id="id_datetime" name="datetime" type="text" required/>
</div>
<script>(function () {
$(document).ready(function() {
$("#id_datetime").datetimepicker();
});
})(jQuery);
</script>

Передача параметров в jQuery.datetimepicker

Вы можете добавить jQuery.datetimepicker параметров в соответствии с вашими потребностями. Полный список параметров см. В документации XDSoft.

datetime = forms.DateTimeField(
widget=DateTimePicker(options={
'format': '%Y-%m-%d %H:%M',
'language': 'en-us',
}),
)

для настройки. Вы можете использовать docs

...