Client-side slug
Slug - короткое название статьи.
У Django есть нужные средства. Но стоит ли нагружать сервер? Да ладно, нагрузки там почти никакой, но удобно ли? Иногда хочется исправить то, что сделано автоматически.
В общем, лучше генерировать на лету с помощью syncTranslit. Наша задача - встроить это в админку Django. На первый взгляд кажется сложным - там же кучи шаблонов и видов, не разберешься в них... Стоп, а подумать?
Оказалось довольно просто: в change_form.html надо заменить
{% if adminform and add %} <script type="text/javascript"> document.getElementById("{{ adminform.first_field.auto_id }}").focus(); </script> {% endif %}
на
{% if adminform and add %} <script type="application/x-javascript" src="http://myfreeweb.ru/media/mfwjs/jquery.1.3.2.min.js"></script> <script type="application/x-javascript" src="http://myfreeweb.ru/media/mfwjs/jquery.synctranslit.min.js"></script> <script type="text/javascript"> document.getElementById("{{ adminform.first_field.auto_id }}").focus(); $(document).ready(function () { if ($('#id_slug') && $('#id_name')) { $('#id_name').syncTranslit({destination: 'id_slug', urlSeparator: '_'}); } });</script> {% endif %}
И все хорошо :) Конечно, если поля называются не name и slug (самые очевидные названия), то надо поменять их.
Постовой: раскрутка сайтов