Quel est le plus propre, le plus simple à obtenir à Django?

j'aime Thauber programmeur de données, mais c'est un DateTime picker et je ne peux pas le faire juste faire des dates. Des recommandations pour des lecteurs de données qui viennent avec des instructions sur la façon de s'intégrer avec un champ de formulaire de date Django?

31
demandé sur Michael Morisy 2010-07-30 01:28:30

9 réponses

Vous pouvez aussi simplement utiliser Jquery dans vos templates. Le capteur de date jQuery permet chaque personnalisation.

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

17
répondu Ali 2010-07-30 02:00:41

ce qui Suit est ce que je fais, sans dépendances externes.:

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(),
        }

mon avis:

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

Et mon template:

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

Le sélecteur de date ressemble à ceci:

enter image description here

22
répondu avi 2016-03-13 09:51:38

Django TextInput widget (et toutes ses sous-classes) support spécifiant un attribut type pour définir le type de forme.

Vous pouvez utiliser cette fonction pour définir le type d'entrée date ( spécification W3C), par exemple de la manière suivante :

date = fields.DateField(widget=forms.widgets.DateInput(attrs={'type': 'date'}))
10
répondu Ten 2016-08-06 12:12:19

quand il s'agit de dater-pickers mon choix est Bootstrap Datepicker. Vous pouvez l'implémenter dans votre application django en utilisant django-bootstrap-datepicker-plus qui fonctionne à la fois sur les nouvelles et anciennes versions de DJango. J'maintenir le référentiel et testé de travail dans DJango version 1.8,1.10,1.11 et 2.0.4.

bootstrap datepicker

La configuration est assez facile. Vous il suffit de l'installer.

  pip install django-bootstrap-datepicker-plus

Importer le widget dans votre forms.py le fichier

    from bootstrap_datepicker_plus import DatePickerInput

Ajouter le widget à votre champ date

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

des instructions détaillées sont disponibles sur le django-bootstrap-datepicker-plus Github Page.

Avertissement: ce paquet de widget est maintenant détenu et entretenu par moi. Pour tout problème avec elle n'hésitez pas à ouvrir les questions sur le Github Page.

5
répondu Munim Munna 2018-05-01 16:00:45

j'ai trouvé cela assez lisse pour un DateTimeField option conviviale https://github.com/asaglimbeni/django-datetime-widget

nécessaire d'inclure bootstrap-timepicker fichier css de malot et cela a fonctionné assez facilement.

2
répondu KindOfGuy 2013-06-06 10:02:27

Étant novice en codage, j'ai utilisé cet exemple en raison de sa facilité.

<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>
2
répondu J. Hacker 2015-08-07 23:25:51

la solution d'avi peut aussi être faite sans utiliser une classe d'entrée django supplémentaire:

class PromiseForm(ModelForm):

    class Meta:
        model = Promise
        fields = ['title', 'description', 'made_on']
        widgets = {
            'made_on': DateInput(attrs={'type': 'date'}),
        }
2
répondu Andy Ward 2017-01-30 18:18:00

j'ai été aux prises avec un problème similaire et j'ai trouvé la solution suivante agréable, en utilisant des formulaires souples:

cela fonctionne vraiment bien et est relativement facile à mettre en œuvre, espérons que quelqu'un trouvera l'aide complète. Bonne chance.

0
répondu AndrewRM 2014-12-11 10:19:06

Utiliser datetime-local type de l'entrée.Peu de fantaisie à la recherche.Mais que va faire le Travail

Espérons que cette aide.enter image description here

0
répondu allsyed 2016-06-18 09:23:56