Ich habe einige Unannehmlichkeiten, wenn ich versuche, django-bootstrap-datepicker-plus Widget auszugeben nach dieser Antwort . Alles funktioniert gut, aber der Datepicker wird nicht angezeigt.
Meine Django-Version ist 1.10.7 und die Apps von Drittanbietern, die ich verwende, sind:
pip install django-bootstrap3
) pip install django-bootstrap-datepicker-plus
) Dies ist meine forms.py
, ich überschreibe die Klasse DateInput
, um sie an meine Bedürfnisse anzupassen.
Dann habe ich in meinem Template-Formular eine Basismastervorlage namens layout.html
, Meine Vorlage user_form.html
, in der ich die oben erwähnten Formularfelder rendern möchte. All diese Vorlagen haben einige divs und html Struktur, wie Sie in user_form.html
file sehen können hier .
In Bootstrap-Einstellungen in meinem settings.py muss ich include_jquery
-Option auf True
Wenn ich auf die Formularseite gehe, wird das Feld date_of_birth nicht als a gerendert calendar datepicker, das ist render als Eingabeart Text, in dem der Benutzer das Datum manuell und in einem bestimmten Format eingeben soll.
In meinem layout.html rufe ich einige zusätzliche cdn jQuery Ressourcen zu anderen Dingen auf.
[Die folgenden Kommentare sind viel älter als diese Änderung]
Sie verwenden django-bootstrap-datepicker-plus , das auf der DJango-Version & gt; = 1.8 funktioniert Es sollte also perfekt mit DJango Version 1.10.7 funktionieren. Wenn Sie alles richtig befolgt haben, wie auf der Installationsseite angegeben, sollten Sie die folgende Checkliste überprüfen, um festzustellen, ob alles vorhanden ist.
Checkliste, damit das Widget funktioniert
include_jquery
auf True
in Bootstrap-Einstellungen . UPDATE: Fehler gefunden
Das Problem ist genau das, was Sie vermutet haben. "In meinem layout.html rufe ich einige zusätzliche cdn jQuery-Ressourcen zu anderen Dingen auf. Führt das zu Konflikten?"
Ich habe Ihre layout.html
durchgesehen und zwei jQuery-Bibliotheken gefunden, eine in Zeile # 22, andere in Zeile # 299, und Sie sagten, Sie haben include_jquery
-Option auf true
gesetzt. Also ja, sie sind widersprüchlich. Der Datepicker ist an die von der Bootstrap-Option include_jquery
geladene jQuery gebunden, und diese jQuery wird von der jQuery in Zeile # 299 überschrieben.
Die Lösung:
Die Lösung besteht darin, nur eine jQuery in Ihrer Vorlage zu behalten. Befreie alle jQuery in deiner Vorlage und behalte include_jquery
auf true
. Oder halten Sie nur einen jQuery in der Kopfzeile des Master-Templates vor anderen Skripten und setzen Sie include_jquery
auf false
.
Tags und Links django javascript django-forms datepicker bootstrap-datepicker