In un'applicazione Django ho il seguente modello:Aggiunta personalizzato JS a un campo Django amministratore
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()
quando sono il rendering di un appuntamento, mi sto solo mettendo un marcatore nella posizione specificata da longitudine e latitudine con l'indirizzo come testo, tuttavia ho bisogno della latitudine e della longitudine per farlo.
Attualmente, latitudine e longitudine devono essere immesse manualmente nel backend amministratore, ma l'apertura di Google Maps/OSM, la ricerca dell'indirizzo e l'immissione di latitudine e longitudine sono lavori che non dovrebbero essere eseguiti a mano, quindi vuoi recuperarlo tramite l'API di Google Maps (parola chiave Geocoding).
Idealmente, voglio un pulsante "Ottieni coordinate" accanto all'indirizzo, che, quando premuto, avvia una richiesta di geocodifica e riempie latitudine e longitudine quando l'indirizzo non è ambiguo e presenta una mappa con i risultati e riempie il coordinate quando l'utente fa clic sul marcatore destro.
So come farlo, ma non sono sicuro di come dovrei inserire il codice e il codice nel backend amministratore.
Alcune cose che ho già preso in considerazione, ma non voglio fare come loro non sembrano naturali o sembrano essere troppo lavoro per un compito così semplice:
- mettere il codice nella descrizione del campo indirizzo in
field_options
in una classe derivata daadmin.ModelAdmin
- mettendo tutto ciò che riguarda l'indirizzo in un modello separato e con un costume
form
(con un modulo separato - creare un widget di indirizzo raccoglitrice noi
- e GeoDjango
cartella Media è una cartella valida, ma penso che sia meglio STATIC_URL come questo static_url = getattr (impostazioni, 'STATIC_URL ','/static/') js = [static_url +' percorso/a/mio/personalizzato/file.js ',] – elin3t