Me encanta el Thauber Programación selector de fecha, pero es un datetime selector y no me puedo hacer fechas. De todas las recomendaciones de aspecto agradable datepickers que vienen con instrucciones sobre cómo integrar con una Django fecha de campo de formulario?

  • Si usted se siente cómodo con el Django Admin fecha del widget, puedes incluir en tu aplicación. La ventaja es sin dependencias externas. Alguien publicó un how-to sobre el django-grupo de usuarios de hace algún tiempo: – a través de Administrador DateTime Selector en su Formulario
  • Si me preguntas que pertenecen a softwarerecommendations, luego de bajar de votación o cerrado. Estás de suerte 🙂

11 Comentarios

  1. 18

    También puede simplemente utilizar Jquery en sus plantillas. El jquery DateTime Selector permite que cada personalización.

    http://jqueryui.com/demos/datepicker/

    • Gracias. Yo nunca había excavado en JQuery, pero un par de horas de entretenerse todo eso me hizo exactamente donde quería estar.
    • Np, buena suerte con su proyecto. Pero recuerde, Jquery es simplemente javascript en el lado del cliente. Así, es posible que alguien publique los datos para su clase de forma incorrecta o maliciosa de los datos, así validar todo y poner el punto de vista de las acciones en un try/except cláusula.
    • Para la validación de datos, el uso de formularios de Django (docs.djangoproject.com/en/dev/topics/forms)
    • Hay alguna forma de cambiar el idioma de el selector de fecha?
  2. 31

    Siguiente es lo que yo hago, sin dependencias externas a todos.:

    models.py:

    from django.db import models
    
    
    class Promise(models):
        title = models.CharField(max_length=300)
        description = models.TextField(blank=True)
        made_on = models.DateField()

    forms.py:

    from django import forms
    from django.forms import ModelForm
    
    from .models import Promise
    
    
    class DateInput(forms.DateInput):
        input_type = 'date'
    
    
    class PromiseForm(ModelForm):
    
        class Meta:
            model = Promise
            fields = ['title', 'description', 'made_on']
            widgets = {
                'made_on': DateInput(),
            }

    mi punto de vista:

    class PromiseCreateView(CreateView):
        model = Promise
        form_class = PromiseForm

    Y mi plantilla:

    <form action="" method="post">{% csrf_token %}
        {{ form.as_p }}
        <input type="submit" value="Create" />
    </form>

    El selector de fecha se parece a esto:

    ¿Cuál es el más limpio, el más simple de conseguir ejecutar datepicker en Django?

    • Esto no funciona en IE o FF.
    • Puedo obtener Enter a valid date/time. de error con «datetime-local». Tal vez el validador debe adaptarse así?
    • puedes mostrar el código y también lleno de error de seguimiento de pila?
    • También, en el formulario HTML, ¿cuál es el tipo de entrada?
    • Comentarios de aquí no son adecuados para la depuración. El código está en Github. Era el «plazo» de campo «issues/models.py» si de verdad quieres profundizar en este.
    • ¿De dónde CreateView vienen?
    • CreateView viene de Django sí mismo. Es una clase genérica basada en vista de enlace
    • Sus obras para mí sin dependencias externas gran trabajo.
    • Funciona en FF pero no IE

  3. 16

    Django del TextInput widget (y todas sus subclases) compatible con la especificación de un tipo de atributo para establecer el tipo de formulario.

    Puede utilizar esta opción para definir el tipo de entrada a date (Especificación del W3C), por ejemplo, de la siguiente manera :

    date = fields.DateField(widget=forms.widgets.DateInput(attrs={'type': 'date'}))
    • Esto funciona muy bien… si eres de los clientes solo podrán utilizar el navegador Chrome. El atributo de HTML necesarios para implementar esta no es compatible actualmente en Safari o Firefox.
  4. 9

    Cuando se trata de la fecha de recolectores de mi elección es Bootstrap Datepicker. Usted puede implementar en su aplicación de django mediante django-bootstrap-datepicker-plus que trabaja tanto en los más recientes y más antiguas versiones de DJango. I mantener el repositorio y probado trabajando en la versión de DJango 1.8, 1.10, 1.11 y 2.0.4.

    ¿Cuál es el más limpio, el más simple de conseguir ejecutar datepicker en Django?

    La instalación es bastante fácil. Usted acaba de instalar.

      pip install django-bootstrap-datepicker-plus

    Importar el widget en su forms.py archivo

        from bootstrap_datepicker_plus import DatePickerInput

    Añadir el widget a su campo de fecha

        class ToDoForm(forms.Form):
            date = forms.DateField(
                widget=DatePickerInput(
                    options={
                        "format": "mm/dd/yyyy",
                        "autoclose": True
                    }
                )
            )

    Instrucciones detalladas están disponibles en el django-bootstrap-datepicker-plus Página De Github.

    Descargo de responsabilidad: Este paquete de widgets es ahora propiedad y está mantenido por mí. Para cualquier problema con el que se sienta libre para abrir temas en el Página De Github.

  5. 3

    Ser más reciente a la codificación, he utilizado este ejemplo, debido a su facilidad.

    <form method="POST">{% csrf_token %}        
        <p>Start date<input type = 'date'  name='start_date' ></p>
        <p>End date<input type = 'date'  name='end_date' ></p>
        <button type="submit">Submit</button>
    </form>
    • Eso no es un selector de fecha. A pesar de que algunos navegadores pueden elegir para mostrar un selector de fecha, definitivamente no es la norma.
    • De hecho, es norma HTML5, consulte aquí o aquí.
    • Es la norma, como en «explorador debe conocer este tiene una fecha dentro de». La norma, sin embargo, no dice cómo debe ser demostrado. Internet Explorer, Firefox y Safari se muestran como texto normal cajas, que está perfectamente bien con la norma… pero no es lo que el OP quiere.
  6. 3

    avi la solución también se puede hacer sin el uso de un adicional de django clase de entrada:

    class PromiseForm(ModelForm):
    
        class Meta:
            model = Promise
            fields = ['title', 'description', 'made_on']
            widgets = {
                'made_on': DateInput(attrs={'type': 'date'}),
            }
  7. 0

    He estado luchando con un problema similar y me encontré con la siguiente solución agradable, utilizando disquetes formas:

    Esto funciona realmente bien y es relativamente fácil de implementar, espero que alguien encontrará la ayuda completa. La buena suerte.

  8. 0

    Uso datetime-local como tipo para la entrada.No es muy elegante aspecto.Pero va a hacer el Trabajo

    Espero que esto ayude.¿Cuál es el más limpio, el más simple de conseguir ejecutar datepicker en Django?

  9. 0

    Esto es lo que ha funcionado para mí . Estoy usando Django 1.11 con bootstrap 3.3 .

    Form.py

    from django.contrib.admin.widgets import AdminDateWidget
    
    class AddInterview(forms.ModelForm):
        class Meta:
            model = models.Interview
            fields = ['candidate', 'date', 'position', 'question_set']
    
        date = forms.DateField(widget=AdminDateWidget())

    Plantilla:

        <form method="post">
            <div class="form-group">
                {% csrf_token %}
                {{ form.media }}
                {{ form.as_p }}
                <p>Note: Date format is yyyy-mm-dd</p>
    
            </div>

    CSS: (En la misma por encima de archivo de plantilla html)

    <link rel="stylesheet" type="text/css" href="{% static 'admin/css/forms.css' %}"/>
    <link rel="stylesheet" type="text/css" href="{% static 'admin/css/widgets.css' %}"/>
    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" >

    JS:(En la misma por encima de archivo de plantilla html)

    <script type="text/javascript" src="/admin/jsi18n/"></script>
    <script type="text/javascript" src="{% static 'admin/js/core.js' %}"></script>
    <script type="text/javascript" src="{% static 'admin/js/admin/RelatedObjectLookups.js' %}"></script>
    <script type="text/javascript" src="{% static 'admin/js/vendor/jquery/jquery.min.js' %}"></script>
    <script type="text/javascript" src="{% static 'admin/js/jquery.init.js' %}"></script>
    <script type="text/javascript" src="{% static 'admin/js/actions.min.js' %}"></script>
    <script type="text/javascript" src="{% static 'admin/js/calendar.js' %}"></script>
    <script type="text/javascript" src="{% static 'admin/js/admin/DateTimeShortcuts.js' %}"></script>
  10. 0

    Esto es lo que tengo que hacer para obtener datepicker en django formas.

    instalar bootstrap_datepicker_plus por el pip comando.

    pip install django-bootstrap_datepicker_plus

    forms.py

    from .models import Hello
    from django import forms
    from bootstrap_datepicker_plus import DatePickerInput
    
    class CreateForm(forms.ModelForm):
        class Meta:
            model = Hello
            fields =[            
                "Date",
            ]
    
        widgets = {
            'Date': DatePickerInput(),
        }

    settings.py

    INSTALLED_APPS = [
        'bootstrap_datepicker_plus',
    ]

Dejar respuesta

Please enter your comment!
Please enter your name here