2009-09-07 14 views

risposta

9

Bene Django è aperto fonte, quindi se vuoi replicare un determinato comportamento, puoi scegliere read the code e scegliere quello che ti piace. Per esempio, si può vedere che contrib.admin utilizza uno script chiamato urlify.js per fare lo slugging dinamica, con l'utilizzo o meno così:

<script type="text/javascript" src="/admin-media/js/urlify.js"></script> 
<script type="text/javascript"> 
document.getElementById("id_title").onkeyup = function() { 
    var e = document.getElementById("id_slug"); 
    if (!e._changed) { e.value = URLify(document.getElementById("id_title").value, 50); } 
} 
</script> 

... a seconda ovviamente dove il vostro supporto amministratore è servita da (miniera è da "/ admin-media /")

Oppure, se sei felice di eseguire la tua visualizzazione, puoi utilizzare la funzione utilizzata in django.template come filtro di slugifica: django.template.defaultfilters.slugify.

+0

Per portare up-to-date: * Percorso per l'amministratore javascript è '/ static/admin/js/urlify.js' o nel modello con la statica template tag '{% static 'admin/js/urlify.js'%}' * 'URLify (s, num_chars, allowUnicode)' ora consente Unicode, quindi è necessario aggiungere 'true' /' false' al URLify chiamata di funzione. – Chad

+0

Inoltre, sarà necessario includere uno script aggiuntivo '/ static/admin/js/vendor/xregexp/xregexp.min.js' – Chad

-1
<script type="text/javascript" src="/media/js/urlify.js"></script> 

 

var slug = document.getElementById("id_slug").value; 

document.getElementById("id_name").onkeyup = function() { 
    if (slug == '') { 
     document.getElementById("id_slug").value = URLify(document.getElementById("id_name").value, 50); 
    } 
}