django автоматический краткий заголовок в образцовых формах как предзаполненные поля в django администраторе

Вот "старый школьный" способ сделать его, который, надо надеяться, работает через все браузеры. В теории Вы использовали бы setAttribute, к сожалению, IE6 последовательно не поддерживает ее.

var cssId = 'myCss';  // you could encode the css path itself to generate id..
if (!document.getElementById(cssId))
{
    var head  = document.getElementsByTagName('head')[0];
    var link  = document.createElement('link');
    link.id   = cssId;
    link.rel  = 'stylesheet';
    link.type = 'text/css';
    link.href = 'http://website.com/css/stylesheet.css';
    link.media = 'all';
    head.appendChild(link);
}

Этот пример проверяет, был ли CSS уже добавлен так, он добавляет его только однажды.

Помещенный, что код в файл JavaScript, имейте конечного пользователя, просто включают JavaScript и удостоверяются, что путь CSS является полным, таким образом, он загружается из Ваших серверов.

VanillaJS

Здесь является примером, который использует плоскость JavaScript для введения ссылки CSS в head элемент на основе части имени файла URL:


Вводят код непосредственно перед закрытием head, тег и CSS будут загружены, прежде чем страница представляется. Используя внешний JavaScript (.js) файл заставит Flash нестилизованного содержания ( FOUC) появляться.

7
задан Neil Hickman 7 September 2009 в 09:29
поделиться

1 ответ

Ну, django - это открытый исходный код, поэтому, если вы хотите воспроизвести определенное поведение, вы можете прочитать код и выбрать то, что вам нравится. Например, вы можете видеть, что contrib.admin использует скрипт под названием urlify.js для выполнения динамических вставок с использованием чего-то вроде этого:

<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>

... в зависимости, конечно, от того, где находится ваш административный носитель обслуживается из (мой из "/ admin-media /")

Или, если вы счастливы выполнить настройку slugify в своем представлении, вы можете использовать функцию, которая используется в django.template в качестве фильтра slugify: django.template.defaultfilters.slugify .

10
ответ дан 7 December 2019 в 03:18
поделиться
Другие вопросы по тегам:

Похожие вопросы: