J'essaie d'ajouter un fichier javascript personnalisé à une page de modèle d'administrateur Django. J'utilise une classe Media dans ModelAdmin, mais le fichier est chargé dans la section head. J'ai besoin à la fin du fichier. Est-ce que quelqu'un sait comment faire ça?
Merci à tous!
class Media:
js = (
'js/jquery.mask.min.js',
'js/mask.js',
)
Le but de ces scripts est d'avoir des masques fonctionnant pour certains champs du formulaire.
3 Réponses :
Vous pouvez étendre les fichiers de modèle de la section d'administration et les y placer directement. Voir https://docs.djangoproject.com/en/2.2/ref/contrib/admin/#overriding-admin-templates
Je l'ai fait dans certains de mes propres projets. Par exemple, dans votre dossier de modèles, vous pouvez avoir:
/templates/admin/base_site.html
Dans ce fichier, vous pouvez apporter les modifications souhaitées (comme pour les modèles Django classiques). Dans votre cas, ce serait probablement quelque chose comme ceci:
{% extends 'admin/base_site.html' %}
{% load static %}
{% block footer %}
<div id="footer"></div>
<script src="whatever/source/jquery.js" />
<script src="whatever/source/mask.js" />
{% endblock %}
J'espère que cela t'aides!
Merci beaucoup! Votre conseil avec le conseil de @ mrash a fait l'affaire.
Content de l'entendre! Bonne chance
dans le code javascript, vous devez forcer le code à s'exécuter après le chargement de la page. par exemple dans jQuery:
$(function(){
/* this code runs after page load */
});
Merci beaucoup! Votre conseil avec celui de @ Sam a fait l'affaire.
Utilisez window.addEventListener :
window.onload = function () {
if (typeof (django) !== 'undefined' && typeof (django.jQuery) !== 'undefined') {
(function ($) {
// Code
}(django.jQuery));
}
};
Autrement:
window.addEventListener('load', function() {
(function ($) {
// Code
})(django.jQuery);
});