Django Newbie ici. J'ai une tentative de page d'enregistrement.
Il se compose de champs de texte (nom, nom d'utilisateur, mot de passe, etc.) et un datfield (anniversaire). P>
J'essaie d'utiliser un formulaires.dateTimeInput Widget pour le Datefield, mais lorsque la page est rendue, rien ne se passe. Est-ce que je fais quelque chose de mal? Cela a-t-il quelque chose qui oublie? Cela semble assez simple, mais je ne peux pas le faire travailler. p>
Ceci est mon formulaire P>
<form action="" method = "POST">
{{ form.as_p}}
<input type='Submit' value='Register'/>
</form>
4 Réponses :
Vous ne devez pas utiliser un DateTimeInput avec un Cependant, je soupçonne ce que vous entendez par "rien ne se passe" est que les liens du sélecteur de date de calendrier n'apparaissent pas. Celles-ci ne font pas partie du cadre de formulaires standard et la documentation ne suggère pas qu'elles apparaissent avec une date / DateTimeInput. Ils font partie de l'application Admin. Si vous en avez besoin dans votre propre application, vous devez inclure explicitement les fichiers JavaScript explicitement. P> Le moyen le plus simple de le faire est probablement d'utiliser Datefield CODE> - Utilisez un datationInput code> ou un DateTimefield code>. Adminindatewidget à partir de django.contrib.admin.widgets code>, plutôt que la dateInput. Vous devrez également inclure le script JSI18N dans votre modèle: P> <script type="text/javascript" src="/admin/jsi18n/"></script>
Je suis vraiment confus à propos de l'endroit où Django est avec des widgets DateTime. Docs implique une mise à jour en 1.1 mais je ne suis pas clair ce que c'est. Si j'ai une forme comme celle-ci:
Le sélecteur de date du calendrier ne fait pas partie du cadre de formulaires. de
Vous pouvez cependant utiliser le widget Sélecteur de date JQQUERY
<script type="text/javascript" src="{{ MEDIA_URL }}js/jquery-min.js"></script>
<!-- give correct location for jquery.js -->
<script type="text/javascript" src="{{ MEDIA_URL }}js/jquery-ui-min.js"></script>
<!-- give correct location for jquery-ui.js -->
<script type="text/javascript">
jQuery(function() {
jQuery("#id_birthday").datepicker({ dateFormat: 'yy-mm-dd' });
});
</script>
<form method="post">
{{ form.as_p }}
<input type="submit" value="Create Phase" />
</form>
Le widget Django DateInput ne rend rien d'autre qu'une entrée de texte brut. Il valide toutefois la contribution de l'utilisateur contre une variété de formats, il n'est donc pas inutile.
La plupart des gens s'attendaient à ce qu'il se comporte de la même manière que le sélecteur de date trouvé dans l'interface administrative Django, il est donc certainement un peu déroutant. p>
Il est possible d'utiliser l'AdminAtwidget dans vos propres applications, mais je conseillerais contre elle. Il faut Beaucoup de violation pour le faire fonctionner .
La solution la plus simple consiste à utiliser quelque chose comme le JQuery UI DatePicker a>. Inclure simplement les éléments suivants dans le en bas, placez la ligne suivante pour activer la datePicker sur votre Éléments d'entrée: P> <script type="text/javascript">
$(function(){
$(".dateinput").datepicker();
});
</script>
Vous devez utiliser un SelectDateWidget à la place. Celui-ci est rendu comme une entrée de date et non comme une entrée de texte. Récemment, j'ai eu le même problème et c'est ce dont vous avez besoin. P>
Bien que ce lien puisse répondre à la question, il est préférable d'inclure les parties essentielles de la réponse ici et de fournir le lien pour référence. Les réponses uniquement uniquement peuvent devenir invalides si la page liée change. I>
Si vous avez une nouvelle question, veuillez le demander en cliquant sur le bouton Poser une question . Inclure un lien vers cette question si cela aide à fournir un contexte. - de l'avis
Bien que ce lien puisse répondre à la question, il est préférable d'inclure les parties essentielles de la réponse ici et de fournir le lien pour référence. Les réponses uniquement des liaisons peuvent devenir invalides si la page liée change. - de l'avis
Le lien va à la partie spécifique de la réponse.
Pourriez-vous clarifier? Est-ce que l'ensemble du formulaire ne ralentit pas, ni juste le champ DateTime?
Les formulaires et les «entrées» apparaissent. C'est le widget de calendrier qui ne le fait pas.
Lorsque j'ai lu le widget de dateInput, je suis également prévu d'un contrôle de sélecteur de date graphique (comme dans Django Admin). Cependant, je suppose que c'est juste une boîte de texte simple. Pas intuitif imo.