Dans une application django je le modèle suivant:Ajout personnalisée JS à un champ admin django
class Appointment(models.Model):
#some other fields
#address fields
zipcode=models.CharField(max_length=5)
address=models.CharField(max_length=120)
latitude=models.FloatField()
longitude=models.FloatField()
Quand je suis rendu un rendez-vous, je suis juste mettre un marqueur à la position indiquée par la longitude et latitude avec l'adresse comme texte, mais j'ai besoin de la latitude et de la longitude pour le faire.
Actuellement, la latitude et la longitude doivent être saisies manuellement dans le backend admin, mais ouvrir Google Maps/OSM, rechercher l'adresse et entrer la latitude et la longitude est un travail qui ne devrait pas être fait à la main, donc je vouloir le récupérer via l'API Google Maps (mot-clé Géocodage). Idéalement, je veux un bouton "Obtenir des coordonnées" à côté de l'adresse, qui, lorsqu'il est pressé, commence une demande de géocodage et remplit la latitude et la longitude lorsque l'adresse est non ambiguë et présente une carte avec les résultats et remplit le coordonnées lorsque l'utilisateur clique sur le bon marqueur. Je sais comment faire cela, mais je ne suis pas sûr comment je devrais insérer le balisage et le code dans le backend d'administration.
Certaines choses je l'ai déjà envisagé, mais ne veux pas faire comme ils naturel ou semblent semblent pas être trop de travail pour une tâche simple:
- mettre le code dans la description du champ d'adresse en
field_options
dans une classe dérivée deadmin.ModelAdmin
- mettre l'adresse de tout ce qui touche dans un modèle distinct et en utilisant une commande
form
(avec un modèle distinct - créer un widget sélecteur d'adresse
- nous e GeoDjango
dossier Media est un dossier valide, mais je pense que vaut mieux STATIC_URL comme celui-ci static_url = getattr (paramètres, « STATIC_URL ','/static/') js = [static_url +' chemin/vers/mon/custom/fichier.js ',] – elin3t