УМЗЧ А КЛАССА НА ПОЛЕВЫХ ТРАНЗИСТОРАХ
Привет всем любителям хорошего аудио. Изучив несколько статей про разработку итальянского инженера-аудиотехника Андреа Чуффоли про усилитель Power Follower 99c, подумалось собрать тоже такую вещь. Были подобраны необходимые детали, прочитаны несколько статей и в путь… Первый канал оконечного усилителя на IRFP150N собран за пару часов неспешно, с перекурами и перерывами на общение с друзьями и парочку онлайн-игр. Тем более что схема совсем не сложная.
Схема принципиальная УМЗЧ Power Follower 99c
Сразу хочу предостеречь — включать это чудо без мало-мальских приличных радиаторов — это 100% убийство полевых транзисторов! Греется схема как небольшой масляный обогреватель. Всё-ттаки чистый А-класс.
Все три транзистора IRFP150N в каждом канале закрепил на один радиатор (один радиатор — один канал). Для этой цели использовал недавно удачно приобретенного донора «Кумир-001». Радиаторы меньших размеров, думается мне, не будут достаточно охлаждать схему.
Включил: вроде ничего не взорвалось, выставил половину напряжения на предохранителе. Подключил нагрузку (колонки S30), сигнал на вход подал со звуковой карты компьютера… И расстроился: звук хороший, активный, насыщенный, но максимум 4 Ватта на слух.
Как это часто бывает сыграла невнимательность. Огромное спасибо другу Сергею, который изучив оригинальную статью на английском языке подсказал, что схема этого оконечного усилителя не что иное, как, цитирую «усилитель тока, и коэффициент усиления по напряжению у него равен 1. Именно поэтому к нему делают специальные ламповые предусилители или на транзисторах с высоким питающим напряжением», конец цитаты.
Блок питания и преамп
Следовательно, нужен хороший предварительный усилитель — ламповый, транзисторный, любой. Выбрал вот такой вариант:
Ибо уж если полевики, то полевики до конца.
На входе диодного моста — 60 Вольт (трансформатор ТПП-235-220-50), на выходе БП — 58,8 Вольт, в обоих плечах.
Резисторы R1 — 1К5; R2, R3 — 47 Ом. Все резисторы — 2 Ватта мощностью. Транзистор в БП — TIP29A. Стабилитроны Zener на 10 Вольт, 5 Ватт.По поводу усилителя мощности, вот комментарии по результатам первых испытаний:
- Каждый канал собирается согласно первой схемы, и каждый канал должен питаться от отдельной вторичной обмотки трансформатора со своим диодным мостом и конденсатором.
- Радиатор и еще раз радиатор!
- Подстроечник 500 Ом за неимением заменил на многооборотный 1 кОм, следовательно 1.8 кОм резистор поменял на 1.2 кОм.
- Переключатель режимов (1.5А/3А) делать не стал, поскольку необходимость этого очень сомнительна, следовательно второй резистор 0,47 не нужен. Вместо трехватного 0,47 использовал три 2-омных двухватника параллельно (МЛТ-2, например).
- Питается от трансформатора из фирменного сабвуфера с двумя вторичными обмотками по 24 Вольта и одной 14 Вольт (это будет питание схемы индикации).
- Напряжение на истоке транзистора в блоке питания канала (правый верхний по схеме) — 22. 5 Вольта.
- Напряжение на предохранителе (относительно минуса питания) — 10.9 Вольт. Сколько не крутил подстроечные резистор, большего добиться не удалось.
Первый канал предварительного усилителя собран, протестирован, хотя и не без накладок. Вместо 22 Ом (R102) резистора сперва поставил на плюс питания 22 кОм и огорчился, когда конструкция начала издавать в колонке хрипы и стоны. Благо перепутал не наоборот, и вместо килоомов не впаял омы — могло бы кончиться плачевно и с дымком. Поменял резистор — выставил напряжения (по сути, достаточно выставить 20 Вольт на стоке полевика, остальные напряжения с небольшим допуском получились сами) подстроечным резистором. И вуаля — чистый, мягкий и в то же время насыщенный звук с виниловой пластинки играет в 8-омную колонку очень красиво!
В общем вот, стерео вариант фоловера + предусилитель + блок питания к преампу готовы, проверены, протестированы.
По результатам могу сказать:
- Для каждого канала УМЗЧ отдельная вторичка нужна и отдельный блок питания.
- Греется этот усилитель по взрослому, посему радиаторы и еще раз радиаторы.
- По звуку: чистый он, что-ли реальный какой-то, в общем приятный на слух.
На этом, пожалуй, все. Огромная благодарность моим друзьям Сергею и Игорю за идейное вдохновение, теоретическую и практическую помощь. Схему собрал и испытал — neo_work_tyumen.
Форум по УНЧ
Обсудить статью УМЗЧ А КЛАССА НА ПОЛЕВЫХ ТРАНЗИСТОРАХ
класс А, IRF610 с источником тока на LM317 » Журнал практической электроники Датагор (Datagor Practical Electronics Magazine)
От neyalm:
Продолжение темы о простых однотактных усилителях на одном полевике. И это тоже повторитель. Кус по напряжению примерно 0,8. КПД около 25%, однако, печка совсем небольшая.
Содержание / Contents
Если у тебя наушники Grado SR80, встроенная звуковая карточка уже не может их достойно раскачать, поэтому я решил сделать настольный ушной усилитель для офиса. Как и в других проектах, я старался создать максимально простую, не содержащую дефицитных деталей и хорошо повторяемую конструкцию.Получилась схема простого самодельного хедампа в стиле «Усилитель для наушников на MOSFETе класса А» от Greg Szekeres и чем-то похожая на «Однотактный усилитель Хьюстона класса А на 2SK1058 MOSFET-е». Основная изюминка усилителя заключается в применении активного источника постоянного тока вместо пассивного резистора. Это удваивает производительность схемы, КПД приближается к теоретическому максимуму 25%.
Рисунок 1: Упрощенная схема усилителя.
Необходимо учитывать две особенности. Во-первых, повторитель на полевике позволяет получать приличные токи, но Кус по напряжению меньше 1. Усилитель применяется в случаях, когда источник сигнала имеет достаточное напряжение на выходе (например, mp3 плеер или компьютер). Во-вторых, схема чувствительна к питанию, любой шум БП беспрепятственно попадет к вам в уши. Вполне подойдет маломощный блок питания: 10-20В , 750мА постоянки должно хватить.
Схема приведена на рисунке 2. Я использовал IRF610, но его можно заменить и другим полевиком, выбор очень велик. Источник тока 250мА построен на LM317.
Рисунок 2. Схема усилителя.
Этот усилитель будет использоваться в офисе, а значит, и дизайн корпуса должен быть соответствующий. К счастью, у меня нашелся трупик внешнего CD-ROMa Plextor, поразмыслив, я понял, что из него получится прекрасный корпус, гармонирующий с моим рабочим местом. Корпус уже оснащен выключателем питания, внутри легко поместится БП, снаружи – входные гнезда RCA и выходное — под мини джек. Чудненько! Лишнее отверстие на задней стенке предназначалось для USB гнезда, его я уже выковырял для другого проекта.
Фотография 1: Корпус внешнего CD-ROMa Plextor.
Я использовал макетные платы площадью примерно 10см кв., но запоет и с любой другой платой. Детали использовались те, что были под рукой, ни одной не пришлось покупать. Резисторы — обычные, металло – пленочные(правда, подобранные), входной конденсатор пленочный, 1 мкФ, выход шунтирует полипропиленовый 0,47мкФ. Конденсатор в питании, 0,1мкФ, также пленочный. Можете применять более крутые разделительные конденсаторы, думаю, это положительно скажется на звуке. Не рекомендую использовать угольные резисторы, особенно в источнике тока, их сопротивление сильно плывет при нагревании.
Фотография 2: Усилитель в сборе.
Радиаторы можно оторвать от разных умерших устройств. Радиаторы площадью 10 см кв. умеренно нагреваются, прикручивание их к металлическому корпусу позволит еще эффективнее отводить тепло. Обязательно ставьте полевик и стабилизатор на изолирующие прокладки.
Исключён фрагмент. Полный вариант статьи доступен меценатам и полноправным членам сообщества. Читай условия доступа.Фотография 3: Усилитель в корпусе.
Первые испытания усилителя производились с регулируемым БП, при низких напряжениях. Ток выставляется 100 килоомным переменником, на выходе полевика(исток) нужно получить половину питающего напряжения(сток). Нужно подправлять ток несколько раз за первые несколько часов работы, пока все не устаканится.
Фотография 4: Испытания в разгаре.
Вскоре у меня появился новый USB осциллограф, отличная возможность и его испытать. Модель DSO-2150, двуканальный, полоса 60МГц, максимальная частота выборки 150 млн. раз/с . Когда я прогонял синусоиду, результаты, как и ожидалось, были хороши на всем звуковом диапазоне. Привожу два скриншота испытаний прямоугольником: 100Гц и 4800 Гц.
Фотография 5: 100Гц, прямоугольник.
Фотография 6: 4800Гц, прямоугольник.
Верхняя половина (зеленый) показывает входной сигнал, а нижняя (желтый) – выходной. Мой генератор не безупречен, это видно на картинке входного сигнала. Посмотрите на амплитуду сигнала на входе и на выходе – становится понятным, что Кус=0,8. Как вы можете заметить, на первой фотографии (100Гц) наблюдаем спад.
Этот спад уменьшается с повышением частоты ,и с 300Гц до 20кГц картина идеальная. Поскольку музыка складывается в основном из гармонических колебаний, а синусоиду усилитель практически не искажает, нет повода для беспокойств.Последние штрихи: приклеиваю переднюю панель к алюминиевой пластине эпоксидкой, ставлю обратно в корпус. Громкость будет регулироваться источником, поэтому внешнего регулятора нет. Родной регулятор громкости CD-ROMa был удален, отверстие заклеено.
Фотография 7: Лицевая панель CD-ROMa.
Фотография 8: Полностью собранный усилитель.
Для такого простого асинхронного усилителя, звук великолепный, на мой слух. Усилок раскачивает мои Grado SR80 с такой легкостью, на которую mp3 плеер просто не способен. Звук у этого усилителя нравится мне даже больше, чем у встроенного в предусилитель NAD C162 хедампа.
Новые режимы работы (классы) А+, Super A, New class A, MOS, class AA
В описаниях некоторых усилителей встречаются рекламные указания на новые классы работы, например А+, Super A, New class A, MOS class AA и т. д. Обычно, стремясь не слишком-то разглашать свои научно-технические достижения, фирмы не сообщают того, что же конкретно представляют собой эти новые режимы работы (классы). Тем не менее, попробуем разобраться в этом хотя бы частично.Класс А всем хорош, за исключением его крайне низкой экономичности. Один из путей ее повышения — применение регулируемых напряжений источников питания. Если усиливаемый сигнал мал, то можно (сохранив класс А) понизить напряжение питания. В некоторых усилителях (например, фирмы Technics) для этого используется источник питания со средней точкой, подключенной к выходу вспомогательного усилителя, работающего в классе В. Тем самым напряжения питания основного усилителя, работающего в классе А, становятся плавающими и отслеживают уровень входного сигнала. При этом, сохраняя линейность, присущую классу А, удается получить КПД, как в классе В. Это и есть так называемый класс А+ или Super А.
New Class A и Super A — это коммерческое название усилителей, в которых неработающий транзистор в двухтактном усилителе не входит в режим отсечки. Этим решалась проблемма т.н. коммутационных искажений .
Класс AA — не режим работы каскада усилителя, как A,B,AB,C и D — а название определенной конфигурации схемы усилителя. Такой усилитель представляет из себя два усилителя — относительно маломощный с выходом на полевиках, работающий в классе A, и обычный мощный на биполярных транзисторах, работающий в классе AB, работающие на общую нагрузку. Включены они наподобие моста. Таким образом, они получают преимущества классов A AB.
Наличие в названии класса термина MOS просто означает, что в каскаде используются мощные полевые транзисторы со структурой «металл—окисел—полупроводник». Но не обязательно только они. Некоторые фирмы используют каскады, в которых наряду с каскадом на мощных полевых транзисторах, действительно работающих в классе А, используется дополнительный каскад на еще более мощных биполярных транзисторах. Он включается с некоторым запозданием (поскольку биполярные транзисторы менее быстродействующие, чем полевые) и разгружает полевые транзисторы. Для совместной работы каскадов применяется специальная мостовая схема, обеспечивающая объединение мощностей каскадов и создание небольшого напряжения возбуждения для каскада на биполярных транзисторах. Описанная схема предложена фирмой Technics и применяется в ряде ее усилителей. Она дает характеристики, присущие каскадам на мощных МДП(М08) транзистоpax, используемых в классе А, но с более высокой мощностью и экономичностью, близкой к классу В.
Иногда используется ключевой режим работы транзисторов — класс D. В нем для управления током в нагрузке используется ключевой каскад с широтно-импульсной модуляцией. Теоретически КПД такого каскада приближается к 100%. Однако искажения сигнала в этом случае велики, а в спектре присутствуют гармоники частоты модуляции. Практического применения в высококачественных усилителях этот режим почти не нашел — так же, как и класс С, используемый в резонансных каскадах радиопередающих устройств.
Классы усилителей. Устройство и принципы работы | Усилители для колонок | Блог
Усилители принято делить на классы в зависимости от режима работы активных элементов. будь то лампы или транзисторы. Считается, что от класса усилителя зависит качество звука, и в большинстве случаев покупатели ориентрируются больше на этот показатель чем на реальные технические характеристики. Эта заметка немного прольет света на значимость класса при выборе усилителя.
Усилители класса А
Считаются эталоном качества звука, из-за того, что режим работы выбирается на линейном участке, это позволяет достичь высокого качества звучания минимальным схемотехническим решением.
Первый каскад усилителей других классов обязательно работают именно в этом классе, так как искажения и шум первого каскада усиливаются последующими каскадами. Но именно этот режим работы выделяет на транзисторе максимальное количество тепла. Как следствие появляются громоздкие системы охлаждения и большие сложности в создании мощного усилителя, не считая того, что усилителю надо время на прогрев и большого потребления электроэнергии.
Усилители класса B
Рабочая точка последнего каскада выбирается в основании вольтамперной характеристики транзистора, что позволяет снизить нагрев устройства. Недостатком является ступенька, в области тихих сигналов, из-за чего применялся в низкокачественных портативных устройствах и был полностью вытеснен классом D.
Усилители класса AB
Точка покоя выбирается чуть дальше от нуля, это позволяет достичь некоторого баланса между качеством звука и нагревом. Прочие классы (G или H) так или иначе развивают эту идею. Из-за относительно простой схемотехники, не особо требовательной к качеству компонентов, встречается повсеместно — от недорогих портативных устройств, до концертных усилителей и аудиофильских штучек.
Любимый трюк производителей — завысить точку смещения, чтобы для замера искажений на паспорт усилитель работал в режиме A, а замер мощности, произвести уже в режиме AB. Как результат — красивые цифры и плохой звук.
Усилители класса С, H, G
Рабочая точка в усилителях класса C, по сравнению с классом B, еще больше смещена относительно центра линейного участка ВАХ-транзистора. В звуковых устройствах из-за слишком больших искажений не используются.
В усилителях H-G классов, по сути, представляющих из себя класс AB, используется дополнительный источник напряжения, подключаемый прямо на лету к выходному каскаду. Это позволяет немного повысить КПД.
Усилители класса D
В отличии от других классов, транзистор работает в ключевом режиме — 2 устойчивых состояниях либо открыт, либо закрыт. Иногда применяют положительную обратную связь для ускорения смены состояний — немыслимый трюк для других классов, приводящий к самовозбуждению.
Так как тепло в основном выделяется при переключении из одного состояния в другое, транзистор очень мало нагревается. Более высоким КПД обладают только режимы E и F, где переключение транзистора происходит в тот момент, когда через него не проходит ток (за счет работы в резонансе с нагрузкой). Но для звуковых усилителей такой режим не подходит из-за слишком больших искажений. Дурную славу эти усилители получили по самым первым дешевым представителям класса.
На самом деле качество усилителя класса D зависит от типа и частоты модуляции. А уже от этого зависит сложность схемотехники, необходимое качество компонентов и, соответственно, цена. Мощные транзисторы, способные работать на большой частоте в ключевом режиме, как и высококачественные аналогово-цифровые преобразователи (ADC) могут стоить весьма внушительно.
Простейшие представители класса D основаны на усилении широтно-импульсной модуляции с частотой ниже 50 кГц. По сути они являются аналоговыми устройствами.
Такая схема достаточно проста, и делается из дешевых компонентов, но отсутствие обратной связи отрицательно сказывается на восприимчивость к помехам по питанию.
Именно такие усилители и стали причиной мифов о плохом качестве звука всего класса. Первые усилители класса А, работающие на лампах с плохим вакуумом и с железным трансформатором тоже не особо блистали характеристиками, но об этом предпочитают не вспоминать.
Да, такой усилитель годится только для сабвуферов, но даже в этом применении его главным достоинством является низкий уровень нелинейных искажений.
В отличии от обычных усилителей класса AB, для которых высокий уровень нелинейных искажений уже на половине заявленной мощности и откровенный клипинг на максимальной — практически норма.
Для усилителей класса D низкий уровень искажений сохраняется практически во всем рабочем диапазоне громкости. Для сабвуфера эта разница не столько в качестве звука, сколько в меньшем нагреве катушки.
В моделях, произведенных с упором на качество, используется дельта-сигма-модуляция. Благодаря обратной связи схема делает поправки на ошибки квантования, что в сумме с нойз-шейпингом или дитерингом выводит шумы в область ультразвука. Работу этих алгоритмов для звука можно наглядно продемонстрировать на изображении:
В области звуковых частот соотношение сигнал/шум после таких преобразований доходит до очень высоких значений, и они не уступают другим классам. Такой усилитель уже можно назвать цифровым (из-за цифровых алгоритмов обработки модулированного сигнала).
Маломощные усилители D-класса получили распространение в мобильной и портативной технике, Bluetooth-колонках. Зачастую представляют из себя одну микросхему, которой даже не требуются дополнительные фильтры на цепях питания — обратная связь компенсирует не только искажения в самой схеме, но и пульсации питания. А за счет с высокой частоты модуляции, индуктивности катушки динамика хватает для фильтрации паразитных высоких частот.
Даже мощным усилителям класса D не надо время на прогрев для достижения паспортных характеристик (для класса А может достигать получаса). Именно благодаря этому профессионалы так полюбили усилители класса D. Такая аппаратура не создает фонового шума, мало греется и готова работать сразу же.
Но и это не все. больше всего этот тип усилителей проявляет себя в работе с цифровым сигналом. Конверторы формата PCM в DSD, встроенные в усилитель, позволяют избегать лишних преобразований из аналога в цифру и обратно. Звук проходит через усилитель в цифровом виде до самого последнего транзистора, которые в Hi-end устройствах могут работать на частотах порядка десятков мегагерц.
Современные устройства пошли еще дальше. В цепь цифрового сигнала добавляют цифровой сигнальный процессор (DSP) для компенсации фазово-частотных искажений, вносимых как динамиком, так и помещением. Искажения замеряются микрофоном, а DSP искажения компенсирует. В итоге такая связка цифрового усилителя и цифровой обработки позволяет добиться максимального качества звука, на которое способен динамик. Именно это и делает усилители класса D любимчиками профессионалов, обращающих внимание в первую очередь на результат.
А для аудиофилов класс D производители тщательно маскируют под названиями других классов, например, Z. Или используют их в качестве источников напряжения для усилителей класса A, AB, хотя при взгляде под другим углом такая схема выглядит как активный фильтр искажений для класса D. А то и вовсе умалчивают о принципах работы усилителя. Как это делает Yamaha:
Но даже беглым взглядом можно сразу заметить характерный для класса D фильтр паразитных частот — катушки индуктивности возле мощных транзисторов редкий гость в усилителях других классов.
Заключение
Любой усилитель, независимо от класса, может быть плохим или хорошим. Конкретное схемотехническое решение влияет на звук больше, чем класс усиления.
Отличительная и неизменная черта классов усилителей — это КПД. И самый большой КПД, порядка 90%, в классе D.
Простой генератор пилообразного сигнала на 555 таймере
[Read in English]
Не стану утверждать, что «пила» просто необходима для отладки аудио-усилителей. Удобно, конечно, посмотреть, не скривилось ли что напрочь — с пилою видны на глаз, и часто нагляднее, чем с синусоидой, всяческие ограничения сигнала или какие-нибудь переходные искажения.
Данный проект я собрал «до кучи» к генератору синусоиды на мосте Вина. Использую его регулярно для отслеживания характера ограничений по амплитуде в своих конструкциях. Так же пила оказалась незаменимой в выявлении всевозможных подсвистов усилителей, которые не видны ни на синусе любой частоты, ни на прямоугольнике…
В этой статье:
- Качественный генератор «пилы» на 555 таймере
- Повторитель с огромным входным сопротивлением
- Регулятор усиления от -1 до +1
- Линейность на уровне профессионального оборудования, используя бюджетные ОУ
555 таймер
Важно: в данной конструкции необходимо использовать только качественный КМОП вариант 555 таймера. Например вот этот: TLC555 datasheet от TI.
Более старые, биполярные варианты 555, выдают совершенно неприличную грязь и к тому же так «бухают» в питание, что это уже ни чем не отфильтровывается.
На мой взгляд, одна из наиболее наглядных отрисовок блок-схемы микросхемы 555:
Блок-схема КМОП таймера 555 |
- GND — Ground = «Земля», отрицательный вывод питания
- TRIG — Trigger = Триггер
- OUT — Output = Выход
- RESET = Сброс
- CONT — Control voltage = Управляющее напряжение
- THRES — Threshold = Порог
- DISCH — Discharge = Разряд
- VDD — Positive supply voltage = Положительное напряжение питания
Задающий генератор пилообразного сигнала
Принцип работы данного генератора исключительно прост, по сути — используем 555 в стандартном включении.
Формирователь пилообразного сигнала |
- R1, R3 = 36 кОм
- R2, R4 = 100 кОм
- VT1 = MPS2907A ~= КТ361 🙂
- C4 = 10 нФ
- C1, C3 = 0.1 мкФ
- C2 = 10 мкФ
Источник тока на транзисторе VT1 обеспечивает линейный заряд времязадающего конденсатора С4. Так же как и пороговые напряжения в 555 таймере, ток, генерируемый данным источником прямо пропорционален напряжению питания. Всё вместе это обеспечивает практически постоянную частоту генерации независимо от величины питающего напряжения.
Пороговое напряжение 555-го (вход 5 «CONT») слегка «притянуто» к земле, чтобы добавить доступного падения напряжения для работы источника тока.
Разряд времязадающего конденсатора производится быстро, через вывод 7 «DISCH». Надо заметить, что полевой транзистор задаёт постоянный ток разряда — спад пилы получается так же практически идеально линейный.
Повторитель с высоким входным импедансом
Полученный практически идеальный пилообразный сигнал на конденсаторе, к сожалению, не может быть подан прямиком в нагрузку — любая нагрузка будет искажать форму сигнала и влиять на частоту генерации. Необходим повторитель с возможно бОльшим входным импедансом. В моём варианте LM324 (datasheets: National/TI, Fairchild, OnSemi) отлично справляется с задачей, при условии использования внешних источников тока (об этом — чуть ниже).
Буфер с огромным входным импедансом |
- R5, R6 = 330 кОм
- C5, C6 = 0.1 мкФ
Можно обойтись без усложнений и использовать простой буферный каскад, если вместо бюджетного LM324 применить высококлассные (дорогие) ОУ со входами на полевых транзисторах.
Регулятор усиления от -1 до +1
Удобно иметь возможность регулировать не только амплитуду сигнала, но так же и полярность.
Регулятор усиления от -1 до +1 |
Настоящий класс «А»
Для получения образцовой линейности усилителей применён тот же трюк, что и в моём генераторе синусоидального сигнала на мосте Вина: загрузка выходов ОУ источниками тока. Таким образом весьма посредственные выходные каскады ОУ LM324, в оригинале работающие практически в классе «B», т.е. без начального тока покоя, переводятся в честный отднотактный класс «А».
Источники тока для загрузки выходов ОУ |
- R9 = 6.2 кОм
- VT2-VT4 = KT503
По факту в своём макете я использовал 5 транзисторов в параллель для загрузки всех 4 выходов LM324.
Работа от одного источника питания
Формирование виртуальной земли при питании от одного источника (батарей) подробно описано в статье про генератор на мосте Вина. В макете я использовал общие цепи питания для обоих генераторов.
Формирование виртуальной земли со сдвигом |
- VD2 = красный светодиод 1.7 Вольта
- R10, R11 = 2 кОм
- C10, C11 = 0.1 мкФ (керамика или плёнка)
- C12, C13 >= 10 мкФ
Тестируем!
«Пила», как она есть на выходе генератора:
Почти идеальная пила уже от 6 вольт питания |
Данная картинка получена при питании от батареек в сумме дающих 6 вольт. Если немного поднять питающее напряжение — форма сигнала станет неотличима на глаз от идеальной. Замечу, что в отличие от генератора на мосте Вина, у которого есть АРУ, здесь амплитуда сигнала на выходе генератора будет линейно зависеть от напряжения питания.
Собираем
TLС555CP + LM324 = два генератора |
Примечание: настоятельно рекомендую поставить отдельный выключатель питания для микросхемы таймера, буде данная схема собрана как у меня в паре с генератором синусоиды с низким THD — помехи даже от КМОП 555 весьма ощутимы. Простенький «джампер» вполне подойдёт на роль такого выключателя (синенький, слева от 555 на картинке).
Классы усилителей звука: классификация — D, A, B, C, AB и другие. Ультралинейные и цифровые. Какой класс лучше?
Наверняка многие слышали о том, что современные усилители могут относиться к разным классам. Однако люди, далекие от акустических систем и технических особенностей звуковой аппаратуры, вряд ли представляют, что скрывается за буквенными обозначениями.
В нашем обзоре мы подробнее расскажем о том, что такое классы усилителей, какими они бывают, и как подобрать оптимальную модель.
Классификация
Класс усилителя — это величина выходящего сигнала, при которой он в функциональной схеме на протяжении одного рабочего цикла приводится в действие синусоидальным входящим сигналом и в результате этого воздействия изменяется. Классификация усилителей по классам зависит от параметров линейности режима, используемого для усиления поступающих сигналов от категорий с повышенной точностью при довольно сниженной эффективности до абсолютно нелинейных. В этом случае точность звуковоспроизведения сигнала не столь велика, зато КПД довольно высок. Все остальные классы усилителей являются некими промежуточными моделями между этими двумя группами.
Первая группа
Все классы усилителей условно можно разделить на две подгруппы. К первой относятся классические управляемые модели классов A, B, а также AB и C. Их категория обусловлена параметром их проводимости на определенном участке выходного сигнала. Таким образом, работа встроенного транзистора на выходе располагается посредине между «выкл» и «вкл».
Вторая группа
Ко второй категории устройств относят более современные модели, которые считаются так называемыми переключающимися классами — это модели D, E, F, а также G, S, H и T.
Эти усилители применяют в работе широтно-импульсную модуляцию, а также цифровые схемы для беспрерывного переведения сигнала между «полностью выкл» и «полностью вкл». Как следствие, происходит мощный выход в районе насыщения.
Описание популярных классов
О разных классах усилителей мы поговорим более подробно.
А
Модели класса А получили наибольшее распространение благодаря простоте их конструкции. Это объясняется несколькими параметрами искажения входящего сигнала и, соответственно, высоким качеством звучания в сравнении со всеми остальными категориями усилительных установок. Модели, относящиеся к этой категории, характеризуются высокой линейностью по сравнению с прочими.
Обычно усилители класса А в своей работе используют единый вариант транзисторов. Его подключают к базовой конфигурации эмиттера для двух половин сигнала так, что германиевый транзистор неизменно идет сквозь него даже в том случае, если фазовый сигнал отсутствует. Это значит, что на выходе каскад не станет в полной мере проходить в область отсечки сигнала и насыщения. Он имеет собственную точку смещения примерно в центральной части линии нагрузки. Такое строение приводит к тому, что транзистор попросту не активируется — именно это считается одним из его базовых недостатков.
Чтобы устройство можно было классифицировать, как относящееся к этому классу, нулевой ток на холостом ходу в выходном каскаде должен равняться предельному току нагрузки либо даже превышать его — это позволяет обеспечить максимальный выходящий сигнал.
Поскольку устройства класса А относятся к однотактным и функционируют в линейной зоне всех заданных кривых, одно выходное устройство проходит через полные 360 градусов, в этом случае устройство категории А в полной мере соответствует источнику тока.
Поскольку усилители этой категории работают, как мы уже говорили, в ультралинейной области, то смещение постоянного тока должно быть установлено корректно — это позволит обеспечивать исправную работу и дает звуковой поток мощностью 24 Вт. Однако в связи с тем, что выходное устройство все время находится в отключенном состоянии, оно беспрерывно проводит ток, и это создает условия для постоянной потери мощности во всей конструкции. Такая особенность приводит к выделению большого объема тепла, при этом их КПД довольно низок — не превышает 40%, что делает их непрактичными, если речь идёт о каких-то мощных акустических системах. Помимо того, из-за повышенного тока холостого хода установки, блок питания должен иметь соответствующие габариты и быть максимально отфильтрован, в противном случае не избежать звучания усилителя и стороннего гула. Именно эти недостатки привели к тому, что производители вынуждены были продолжить работу над созданием усилителей более эффективной категории.
В
Усилители класса B были созданы производителями для решения проблем, связанных с низким КПД и повышенным уровнем перегрева, которые свойственны установкам предыдущей категории. В своей работе модели категории В применяют пару дополнительных транзисторов, как правило, биполярных. Их отличие в том, что для обеих половин сигнала выходной фронт построен по двухтактной схемотехнике, таким образом каждое транзисторное устройство дает усиление лишь наполовину выходного сигнала.
Базовый ток смещения уровня постоянного тока в усилителях этого класса отсутствует, поскольку ток его покоя равняется нулю, поэтому мощностные параметры постоянного тока обычно малы. Соответственно, и КПД его гораздо выше, нежели у устройств А. При этом когда сигнал принимает положительное значение, транзистор с положительным смещением ведет его, а отрицательный остаётся в выключенном состоянии. Аналогично в момент, когда входящий сигнал принимает отрицательное значение, положительный отключается, а отрицательно смещённый транзистор, наоборот, активируется и обеспечивает проведение отрицательной половины сигнала. В результате транзистор во время своей работы проводит 1/2 цикла только в положительном либо в отрицательном полупериоде поступающего сигнала.
Соответственно, всякое транзисторное устройство этой категории может проходить только через часть выходного сигнала, при этом в четком чередовании.
Такая двухтактная конструкция примерно на 45-60% эффективнее, нежели усилители класса А. Тем не менее проблемы с моделями этого типа заключаются в том, что они дают существенные искажения в момент прохождения аудиосигнала из-за «мертвой зоны» транзисторов в коридоре входных напряжений со значениями от -0,7 В до +0,7 В.
Как все знают из курса физики, базовый эмиттер должен давать напряжение около 0,7 В для того, чтобы биполярный транзистор начал полноценную проводку. Пока это напряжение не превысит эту отметку, выходной транзистор не сместится до положения включения. Это значит, что половина сигнала, которая пойдёт в коридор 0,7 В, начнет воспроизводиться неточно. Соответственно, это делает устройства категории B практически непригодными для применения в прецизионных акустических установках.
Для того чтобы преодолеть эти искажения и были созданы так называемые компромиссные устройства класса AB.
АВ
Эта модель представляет собой некий тандем конструкции категории А и категории B. В наше время усилители типа AB считаются одними из самых распространенных вариантов конструкций. По принципу своей работы они немного напоминают изделия категории В, с тем только исключением, что оба транзисторных устройства могут в одно и то же время проводить сигнал возле точки пересечения осциллограмм. Это в полной мере устраняет все проблемы искажения сигнала предыдущего усилителя группы В. Разница состоит в том, что пара транзисторов имеет довольно малое напряжение смещения, как правило, оно составляет от 5 до 10% от параметров тока покоя. В этом случае проводящее устройство остаётся включённым дольше, чем время одного полупериода, но в то же время – это гораздо меньше, нежели полный цикл входного сигнала.
Можно с полной уверенностью сказать, что устройство типа AB считается отличным компромиссом между моделями класса А и моделями класса В с позиции КПД и линейности, в то время как эффективность трансформации звукового сигнала составляет приблизительно 50%.
С
Конструкция установок, относящихся к классу C, обладает максимальной эффективностью, но при этом довольно плохой линейностью в сравнении со всеми остальными категориями. Усилитель C-класса довольно заметно смещен, поэтому входной ток принимает нулевое значение и держится на этой отметке на протяжении более 1/2 цикла поступающего сигнала. В это время транзистор пребывает в режиме ожидания его выключения.
Подобная форма смещения транзистора обеспечивает наибольшую эффективность устройства, его КПД составляет порядка 80%, но при этом она вносит довольно значительные звуковые искажения в исходящий сигнал.
Такие конструкционные особенности делают невозможным применение усилителей в акустических системах. Как правило, эти модели нашли свою сферу использования в высокочастотных генераторах, а также отдельных вариантах радиочастотных усилителей, где импульсы тока, издаваемые на выходе, преобразуются в синусоидальные волны заданной частоты.
D
Усилитель категории D относится к двухканальным нелинейным импульсным моделям, их еще называют ШИМ-усилители.
В подавляющем большинстве аудиосистем выходные каскады функционируют в классах А либо АВ. В интегральных усилителях группы D мощность рассеивания линейных входов значительна даже в случае их максимально полной, практически идеальной реализации. Это дает моделям D-класса существенное преимущество в большинстве сфер применения вследствие минимального тепловыделения, снижения веса и габаритов устройства и, соответственно, пониженной стоимости изделий, притом что время автономной работы в таких моделях увеличено в сравнении с моделями других конструкций.
Как правило, это высоковольтные модели, они рассчитаны на плату в 10000 ватт.
Другие
Усилитель класса F. Эти модели обеспечивают повышенную эффективность, их КПД составляет порядка 90%.
Усилитель класса G. Этот усилитель, по сути, представляет собой усовершенствованную высоколинейную конструкцию базового устройства класса AB на ТДА. Модели, относящиеся к данной категории, могут выполнять автоматическое переключение между разными линиями питания в случае изменения параметров поступающего сигнала. Подобное переключение многократно уменьшает энергопотребление и, соответственно, уменьшает расход мощности, которые вызываются утратой тепла.
Усилитель класса I. Такие модели имеют пару комплектов дополнительных выходных приспособлений. Перед включением они располагаются в двухтактной конфигурации. Первое устройство выполняет переключение положительной части сигнала, а второе — отвечает за переключение отрицательной, подобно усилителям категории B. При отсутствии сигнала аудио на входе или в случае, если сигнал достигает нулевой точки пересечения, переключающий механизм включается и выключается в одно время с основным циклом.
Усилитель класса S. Данный класс усилителей относят к категории нелинейного механизма переключения. По механизму своей работы они в чем-то похожи на усилители категории D. Такой усилитель производит преобразование аналоговых входящих сигналов в цифровые, многократно усиливая их. Таким образом, чтобы повысить мощность на выходе, обычно цифровой сигнал переключающего устройства либо полностью включен, либо полностью выключен, поэтому КПД таких устройств может составлять 100%.
Усилитель класса T. Ещё один вариант цифрового усилителя. Сегодня такие модели набирают всё большую популярность из-за присутствия микросхем, позволяющих выполнять цифровую обработку поступающего сигнала, а также встроенных многоканальных усилителей 3D-звучания. Такой эффект обеспечивается конструкцией, позволяющей преобразовывать аналоговые сигналы в звуки повышенной ШИМ цифрового типа. Конструкция устройств класса C объединяет параметры сигнала с пониженной степенью искажений, подобного АВ категории, в то время как сохраняют КПД на уровне моделей класса D.
Как определить?
Для начала остановимся на том, как в принципе функционирует усилитель. Наверняка вы будете удивлены, но по факту заводской усилитель ничего не усиливает. По сути, механизм его работы напоминает работу самого простого крана: вы крутите ручку и вода из водопровода начинает литься, сильнее или слабее, а если ее закрутить — то поток будет перекрыт. В усилителях все процессы происходят таким же образом. От мощного модуля питания ток проходит сквозь подключенный к устройству динамик. В данном случае функцию крана берут на себя транзисторы — на выходе степенью их закрытия и открытия управляет сигнал, который проходит на усилитель. От того, как именно этот кран функционирует, то есть как действуют выходные транзисторы, и определяется класс усилителей.
Если мы говорим об устройствах АВ, то в них транзисторы могут иметь неприятное свойство открываться и закрываться непропорционально поступающим на них сигналам. Таким образом, их работа становится неизменной. Возвращаясь к аналогии с краном — вы можете поворачивать ручку краника, но вода сперва будет течь слабо, а затем вдруг поток внезапно усилится.
По этой причине транзисторы категории АВ приходится удерживать в приоткрытом состоянии даже в том случае, если сигнал отсутствует. Это необходимо для того, чтобы они начали работать сразу же, а не выжидали, пока сигнал дойдет до определённого уровня – только в этом случае усилитель сможет воспроизводить звук с минимальными искажениями. На практике это означает, что некоторая часть полезной энергии расходуется вхолостую. Только представьте, что вы откроете все водопроводные краны в квартире, и из них беспрерывно будет вытекать небольшая струйка воды. Как следствие, эффективность таких моделей не превышает 50-70%, именно низкий КПД и является главным минусом усилителей АВ класса.
Если говорить об устройствах D-класса, то принцип работы у них абсолютно такой же: они имеют свои выходные транзисторы, способные закрываться и открываться. Тем самым регулируется прохождение тока сквозь подведенные к ним динамики, вот только управляет их открытием уже сигнал, по своей конфигурации весьма далекий от входящего.
Именно так подается сигнал на выходные транзисторы устройств D-класса. В данном случае функционировать они станут совсем иначе: либо в полном объеме закрываться, либо открываться без каких-либо промежуточных значений. Это означает, что КПД таких моделей может быть приближен к 100%.
Конечно, передавать подобные сигналы на аудиосистемы рано, сперва ему следует вернуть стандартную конфигурацию. Это можно сделать посредством выходного дросселя, а также конденсатора — после их обработки на выходе формируется усиленный сигнал, который по своей форме полностью повторяет входящий. Именно он и передается на динамики.
Основное преимущество устройств D-класса – это повышенный КПД и, соответственно, более щадящее расходование энергии
Долгое время было принято считать, что для подключения качественных акустических установок оптимальным решением станут усилители АВ. Модели категории D давали преобразование поступающего сигнала в импульсный с пониженной частотой, в итоге он давал хорошее звучание только в сабвуферном режиме. В наши дни технологии сделали большой шаг вперед, и сегодня появились уже быстродействующие транзисторы, которые могут открываться, а также и закрываться почти моментально, в магазинах представлено довольно много широкополосных устройств D-класса.
Эти модели предназначены на применение не только с сабвуферами, но также и с современными акустическими системами любых типов. Для тех вариантов, когда высокой мощности не требуется, имеет смысл приобрести довольно компактный усилитель.
Таким образом, если для подключения АС у вас достаточно площади, то вы вполне можете подобрать модель АВ-класса. За несколько десятилетий существования схемотехника этих моделей хорошо отработана, они дают довольно хорошее качество звучания, а в случае их поломки вы можете без проблем отремонтировать их в ближайшем сервисном центре.
Если участок для звуковой инсталляции ограничен, то стоит присмотреться к широкополосным моделям группы D. При тех же мощностных параметрах, что и изделия АВ-класса, они гораздо меньше и легче, притом меньше греются, и некоторые модели позволяют даже устанавливать их скрытно с наименьшими вмешательствами.
Для подключения сабвуферов максимальное преимущество у установок D-класса, так как темброблок басов представляет собой наиболее энергозатратный частотный диапазон — в данном случае КПД изделия имеют принципиальное значение, а в этом конкурентов изделиям D класса попросту нет.
В данном видео вы сможете нагляднее ознакомиться с классами усилителей звука.
Сериализаторы — Django REST framework
GitHub Следующие Предыдущая Поиск Фреймворк Django REST- Главная
- Учебник
- Быстрый старт
- 1 — Сериализация
- 2 — Запросы и ответы
- 3 — Просмотры на основе классов
- 4 — Аутентификация и разрешения
- 5 — Отношения и гиперссылки API
- 6 — Viewsets и маршрутизаторы
- Руководство API
- Запросы
- Ответы
- Просмотры
- Общие представления
- Наборы просмотров
- Маршрутизаторы
- Парсеры
- Рендереры
- Сериализаторы
- Поля сериализатора
- Отношения сериализатора
- Валидаторы
- Аутентификация
- Разрешения
- Кеширование
- Дросселирование
- Фильтрация
- Пагинация
- Управление версиями
- Согласование содержания
- Метаданные
- Схемы
- Суффиксы формата
- Возврат URL-адресов
- Исключения
- Коды состояния
- Тестирование
- Настройки
- Темы
- Документирование вашего API
- Клиенты API
- Интернационализация
- AJAX, CSRF и CORS
- HTML и формы
- Улучшения браузера
- Доступный для просмотра API
- ОТДЫХ, гипермедиа и ненависть
- Сообщество
- Учебники и ресурсы
- Сторонние пакеты
- Участие в REST framework
- Управление проектом
- Примечания к выпуску
- 3.12 Объявление
- 3.11 Объявление
- 3.10 Объявление
- 3.9 Объявление
- 3.8 Объявление
- 3.7 Объявление
- 3.6 Объявление
- 3.5 Объявление
- 3.4 Объявление
- 3.3 Объявление
Пригласите студентов совершить прогулку […] экскурсия по их сообществу, возможно, как a экскурсия по классу .nationhood.ca | Inviter les lves marcher dans leur collectivit. nationhood.ca |
мы ek l y class field trip e v er y Среда […] днем, чтобы посетить известную швейцарскую достопримечательность; — дневные спортивные занятия четыре […]дня в неделю (занятия спортом) brillantmont.ch | u n e so rtie d e class c ha que merc re di pour […] visiter un site Suisse bien connu — quatre aprs-midi de sports par semaine (grand choix de sports) brillantmont.ch |
Институт природных ресурсов tu t e поездка в класс t o F WI 9/01 ноября. dfo-mpo.gc.ca | Visite scolaire du Natural […] Ресурсы Institut e l ‘ Institut des e aux douces — […]le 9 ноя. 2001. dfo-mpo.gc.ca |
Наше пожертвование в размере 50 000 долларов США образовательному партнерству Wonder of Wetlands с Ducks Unlimited Canada в 2004 году позволило более 1700 детям в […]Саскатун, чтобы узнать о дикой природе и […] Сохранение водно-болотных угодий th ou g h экскурсии в класс a n d материалы для учителей.rbc.com | Notre don de 50 000 $ Canards Illimits Canada (CIC) a permis plus de 1 700 enfants de Saskatoon de seiliariser avec […]l’importance de la […] prservation de l a faune e t des milieux humides par des visites sur l e terrain e t du matriel […]didactique. rbc.com |
В то время как риск серьезного заболевания из-за употребления непастеризованных соковых продуктов, как правило, низок для большинства взрослых, возможная опасность для уязвимых групп намного выше. Это становится даже […]больше вызывает беспокойство во время сезона сбора урожая, потому что школы часто отводят учеников на […] фруктовые сады как пар. t o f экскурсии класса .hc-sc.gc.ca | Bien que le risque de tomber gravement malade aprs uneir consomm du jus non pasteuris soit gnralement faible pour la plupart des Adults, ce risque est beaucoup plus grand pour les group […]vulnrables, особые условия для посещения, или для посетителей s fait […] s ouvent partie de s so rtie s de classe .hc-sc.gc.ca |
Комната родителей играет […] неотъемлемая роль в классе, организация общественных мероприятий a n d экскурсии в класс .lyceechicago.org | Les Родители dlgus jouent un rle […] important d an s la classe , org an isant diverses activ it s e t sorties e n co ll aburation […]avec les enseignants. lyceechicago.org |
Чтобы увидеть больше фотографий […] эти события a n d экскурсии на занятия a n d мероприятия, […]нажмите на фотографии ниже. efiv.org | Pour voir plus de […] фотографии d e ce s vnements e t des sort ie s scolaires, […]клика по фотографиям ci-dessous. efiv.org |
Project Webfoot обеспечивает обучение по водно-болотным угодьям через программу […] curriculum-base d i n — class c o mp onent a nd a field trip или т.пл. вон.bluewater.rbc.com | Ce projet offre un Programme d’education aux milieux humides […] comportan t des Cours mag is t ra ux et de s classes e n p lein r.eaubleue.rbc.com |
Я ответил ему, что мы все новички в Америке, и мы из ES O L class g o in g on a производственная практика . america.gov | Ce que je peux faire pour eux, aussi minime soit-il, est un plus non seulement pour eux, mais pour moi. america.gov |
Если ученику […] участвуют в деятельности (например, г. a производственная практика o r s приспособление для портов), что потребует missi ng класс o r o школьное мероприятие, разрешение […]надо искать […]от всех соответствующих учителей заранее. ecolint.ch | Si un lve Partition […] une act iv it ( par exc ple voyage sur le t er rain ou rencontre sportive) qui l’empche de ven n classe , une perm is sion doit […]tre demande tous […]les professeurs touchs par l’absence. ecolint.ch |
Pl an a field trip f o rt h e class a a 9015 выйти к местным […] кенотаф и принять участие в поминальной службе. legion.ca | Planif ie z une v is ite en gr ou pe de vo tre class u n c nota ph e local [… и участие в сервисе сувениров. legion.ca |
Ta ke a производственная практика t o район , где вы выросли, чтобы увидеть, что там сейчас. lesenfantsavanttout.com |
Антропология | Встречает | Инструктор | Кредиты | |
---|---|---|---|---|
Полевая работа: Символы самобытности: польский народ, еда и посты : День 2 — 16 сентября 2019 г.] | B 11:10 — 12:30 | Коэн | 3 | |
Полевые работы: Кандомбл в Городе женщин [Бразилия: День 1 — ноября 10, 2019] | B 8:10 — 9:30 | Cohen | 3 | |
Business | Встречает | Инструктор | Кредиты | |
Полевые работы: 907ha [Гана: день 2, 29 октября 2019 г.] | A 11:10 — 12:30 | Коричневый | 3 | |
Ботаника / зоология | Встреча с инструктором | Кредиты | ||
Полевые работы: Экология тропических лесов: небо вверху, деревья внизу [Гана: день 5 — 1 ноября 2019 г.] | B 11:10 — 12:30 | Huyvaert | 3 | |
Полевые работы: Животные, люди и места: Одно здоровье в раю [Португалия: День 3 (Португалия) / День 2 (Коста-Рика)] | A 12:40 — 14:00 | Huyvaert | 4 | |
Английский | Встречает | Инструктор | Кредиты | |
Полевая работа: В поисках социального реализма в литературной литературе1 Гуаякиль 1–6 декабря 2019 г. 12:40 — 14:00 | Saville | 3 | ||
Полевые работы: Изучение местных праздников и драматических традиций [Гана: день 1 — 28 октября 2019 г.] | B 11:10 — 12:30 | Вс árez-García | 3 | |
Полевые работы: По следам Тахир Шаха и пирата Барбари Мурада Рейса [Марокко: день 2, 16 октября 2019 г.] | B 14:10 — 15:30 | Saville | 3 | |
Полевые работы: «Жемчужина Адриатики»: старый город и Ректорский дворец [Хорватия: день 1 — 6 октября 2019 г.] | A 17:10 — 18: 30 | Núñez | 3 | |
Экономика | Встречает | Инструктор | Кредиты | |
Полевые работы: Границы и стены 1 октября 906 [Испания, 2019: День 3-901 | ] 14:10 — 15:30 | Barreto | 3 | |
Полевые работы: Микрокредитование в Касабланке [Марокко: День 2 — 16 октября 2019 г.] | B 14:10 — 15:30 | Баррето | 3 | Этнические исследования | Встречает | Инструктор | Кредиты |
Полевая работа: Афро-эквадорское искусство и мастерская маримбы [Эквадор: день 2 — 3 декабря 2019 г.] | A 15:40 — : 00 | Vaught | 3 | |
Пищевые науки и питание человека | Встречает | Инструктор | Кредиты | |
Полевые работы: От фермы до вилки сентября, Португалия, 26 сентября: день 2019] | A 15:40 — 17:00 | Harris | 3 | |
Полевые работы: Кулинария для здоровья — Тайны Средиземноморья [Испания: день 3 — 1 октября 2019 г.] | A 14:10 — 15:30 | Harris | 3 | |
Рыба / Дикая природа / Биология сохранения | Встречает | Инструктор | Кредиты | |
9 0774 Полевые работы: Наблюдение за китами и тунцом на юге Испании [Испания: День 3 — 1 октября 2019 г.] | A 15:40 — 17:00 | Доэрти | 3 | |
История | Встречи | Инструктор | Кредиты | |
Полевые работы: Война и Холокост [Польша: День 1 — 15 сентября 2019 г.] | B 17:10 — 18:30 | Madsen | 3 | |
Полевая работа: Посол на день [Марокко: День 2 — 16 октября 2019 г.] | B 14:10 — 15:30 | Madsen | 3 | |
Полевая работа: Изучение истории и памяти работорговли [Гана: день 5 — 1 ноября 2019 г.] | B 11:10 — 12:30 | Vaught | 3 | |
Международное образование | соответствует | Инструктор | Cr edits | |
Полевые работы: В джунглях, могучие джунгли [Коста-Рика: день 2 — 12 декабря 2019 г.] | A 12:40 — 14:00 | Madsen | 3 | |
Полевая работа: Расширение эмпатии и установление связей [Коста-Рика: день 2 — 12 декабря 2019 г.] | B 14:10 — 15:30 | Lawson | 3 | |
Международные исследования | Встречает | Инструктор | Кредиты | |
Полевая работа: Политическая экономия расы и африканская культура в Бразилии [Бразилия: день 1 — 10 ноября 2019 г.] | A 14:10 — 15:30 | Vaught | 3 | |
Внутриуниверситетский | Встречает | Инструктор | Кредиты | |
Полевая работа: Обмен студентами колледжа с [Польша: День 1- 15 сентября 2019 г.] | A 8:30 — 9:30 | ДиГрегорио | 1 | |
Журналистика и коммуникация со СМИ | Встречает | Инструктор | Кредиты | |
Марокко [Марокко: День 2 — 16 октября 2019 г.] | B 14:10 — 15:30 | Рис | 3 | |
Полевые работы: Гданьский военный музей [Польша: День 1- 15 сентября 2019 г.] | B 17:10 — 18:30 | Рис | 3 | |
Испанский | Встречает | Преподаватель | Кредиты | |
Полевая работа: 907 : От рынков и кухни к музыке и культурной самобытности [Эквадор: день 1 — 2 декабря 2019 г.] | A 15:40 — 17:00 | Суарес-Гарсия | 3 | |
9 0774 Полевые работы: Гуаякиль: рынки и местная кухня [Эквадор: день 2 — 3 декабря 2019 г.] | B 15:40 — 17:00 | Нуньес | 3 | |
Полевые работы: Кадис и Херес: Страна шерри, вина и лошадей [Испания: день 3 — 1 октября 2019 г.] | A 14:10 — 15:30 | Núñez | 3 | |
Полевые работы: Экономические Влияние природных территорий: Коста-Рика [Коста-Рика: день 2 — 12 декабря 2019 г.] | A 12:40 — 14:00 | Суарес-Гарсия | 3 | |
Руководство | Встречает | Инструктор | Кредиты | |
Полевые работы: Изучение цепочки создания стоимости кофе от добычи до переработки [Коста-Рика: день 2 — 12 декабря 2019 г.] | A 12:40 — 14:00 | Deif | 3 | |
Поле Работа: Применение управленческой практики в Латинской Америке [Бразилия: День 2 — 11 ноября 2019 г.] | B 12:40 — 14:00 | Deif | 3 | |
Полевая работа: Творчество , Инновации и создание ценности (Gioia) [Бразилия: день 2 — 11 ноября 2019 г.] | B 15:40 — 17:00 | Gioia | 3 | |
Работа на местах: Социальное предпринимательство как инструмент развития [Марокко: День 2 — 16 октября 2019 г.] | B 14:10 — 15:30 | Deif | 3 | |
Полевые работы: Сохранение природы и экотуризм [Бразилия : День 1 — 10 ноября 2019 г.] | B 12:40 — 14:00 | Коричневый | 3 | |
Полевые работы: Возобновляемое будущее Лиссабона [Португалия: День 1 — 26 сентября 2019 г. ] | A 8:10 — 9:30 | 9015 1 Коричневый3 | ||
Маркетинг | Встречает | Инструктор | Кредиты | |
Полевая работа: Создание ценности для семестра в море [Польша: День 1 — 15 сентября 2019 г.] | B | 15:40 — 17:00 | Дэвис | 3 |
Полевые работы: Создание ценности для Гданьского Шекспировского театра [Польша: День 6 — 20 сентября 2019 г.] | B 17:10 — 18 : 30 | Дэвис | 3 | |
Полевые работы: Создание социальной и экономической ценности для глобальной зоны справедливой торговли мам [Гана: День 1 — 28 октября 2019 г.] | A 11:10 — 12:30 | Дэвис | 3 | |
Музыка | Встречает | Инструктор | Кредиты | |
Полевые работы: Испанская культура, кухня и танцы фламенко [Испания: ay 3 — 1 октября 2019 г.] | A 9:40 — 11:00 | Byerly | 3 | |
Полевые работы: Африканский кружок барабанщиков, кухня и танцы [Гана: день 1 — октябрь 28, 2019] | A 11:10 — 12:30 | Byerly | 3 | |
Природные ресурсы | Встречает | Инструктор | Кредиты | |
Полевые работы: Леса | [Коста-Рика: день 2 — 12 декабря 2019 г.] A | 12:40 — 14:00 Sobey | 3 | |
Полевые работы: Изучение прибрежной среды Португалии [Португалия : День 1 — 26 сентября 2019 г.] | B 14:10 — 15:30 | Sobey | 3 | |
Полевые работы: Мангровые леса на океанской байдарке [Эквадор: День 2 — 3 декабря , 2019] | B 15:40 — 17:00 | Sobey | 3 | |
Полевые работы: Посещение участков, связанных с океанографией, в Лиссабоне [Португалия: день 2 — 27 сентября 2019 г.] | A 14:10 — 15: 30 | Берман | 3 | |
Полевые работы: Там, где река впадает в море: перекресток заповедников в Эквадоре [Эквадор: день 1 — 2 декабря 2019 г.] | B 15:40 — 17 : 00 | Huyvaert | 3 | |
Природные ресурсы Отдых и туризм | Встречает | Инструктор | Кредиты | |
Полевые работы: Игра престолов 2 — День 9077 в Хорватии , 2019] | A 17:10 — 18:30 | Hudson | 3 | |
Полевые работы: Влияние корневого туризма в Гане [Гана: день 5 — 1 ноября 2019 г.] | В 9:40 — 11:00 | Гудзон | 3 | |
Философия и религиоведение | Встреча | Инструктор | Кредиты | |
Полевые работы: Уборка урожая в октябре 2019 г., День Тумана в Марокко, 2: ] | B 14:10 — 15:30 | Shockley | 3 | |
Полевые работы: Священные места в Касабланке [Марокко: день 2 — 16 октября 2019 г.] | A 17: 10 — 18:30 | Bratt | 3 | |
Полевые работы: Обрамление моральной трагедии: рабские замки Ганы [Гана: день 5 — 1 ноября 2019 г.] | B 11:10 — 12: 30 | Shockley | 3 | |
Полевые работы: Морская жизнь, находящаяся под угрозой: ценность биоразнообразия [Бразилия: день 1 — 10 ноября 2019 г.] | A 14:10 — 15:30 | Шокли | 9015 1 3||
Полевая работа: Африканцы и европейцы в бразильской религии [Бразилия: День 2 — 11 ноября 2019 г.] | B 12:40 — 14:00 | Bratt | 3 | |
Полевые работы: След Колумба [Испания: День 3 — 1 октября 2019 г.] | A 14:10 — 15:30 | Bratt | 3 | |
Политология | Встречает | Инструктор | Кредиты | |
Полевые работы: Дубровник на войне [Хорватия: День 2 — 7 октября 2019] | A 12:40 — 14:00 | van der Westhuizen | 3 | |
Полевые работы: Африканские корни Лиссабона [Португалия: День 1 — 26 сентября 2019] | B 17:10 — 18:30 | van der Westhuizen | 3 | |
Полевые работы : Роли НПО в Вс. Дебаты о окрашиваемости [Гана: День 1 — 28 октября 2019 г.] | A 15:40 — 17:00 | van der Westhuizen | 3 | |
Психология | Встречает | Инструктор 64 64 | ||
Полевая работа: Психологическое развитие в сельских общинах по сравнению с деревенскими общинами в Гане: фокус на подростковом и развивающемся зрелом возрасте [Гана: день 2 — 29 октября 2019 г.] | A 11:10 — 12:30 | Lynch | 3 | |
Полевая работа: Политика в отношении наркотиков и лечение наркозависимости в Португалии [Португалия: День 1 — 26 сентября 2019 г.] | A 15:40 — 17:00 | Lynch | 3 | |
Полевая работа: Психиатрическое лечение в Марокко [Марокко: День 2 — 16 октября 2019 г.] | B 12:40 — 14:00 | Lynch | 3 | |
Hos питалити Менеджмент | Встречает | Инструктор | Кредиты | |
Полевая работа: Гастрономия и гостеприимство Лиссабонский стиль! [Португалия: день 1 — 26 сентября 2019 г.] | A 15:40 — 17:00 | Hudson | 3 | |
Полевые работы: Экскурсия на ферму какао «От бобов до баров» [ Эквадор: День 1 — 2 декабря 2019 г.] | B 15:40 — 17:00 | Харрис | 3 | |
Социология | Встречает | Инструктор | Кредиты | B 12:40 — 14:00 | Massey | 3 |
Полевые работы: Class , Гендерное и этническое неравенство: видимые и невидимые [Бразилия: день 1 — 10 ноября 2019 г.] | A 17:10 — 18:30 | Massey | 3 | |
Полевые работы: От Командование на рынок: неустойчивый путь Польши [Польша: День 2 — 16 сентября 2019 г.] | B 17:10 — 18:30 | Massey | 3 | |
Коммуникационные исследования | Встречает | Инструктор | Кредиты | |
4 Полевые работы Этномузыкологический тур по Моурарии | A 15:40 — 17:00 | Misner | 3 | |
Полевая работа: Европейский центр солидарности [Польша: День 2 — 16 сентября 2019 г.] | B 15:40 — 17:00 | Byerly | 3 | |
Полевая работа: Семинар по осознанности [Хорватия: День 1-6 октября 2019 г.] | A 14:10 — 15:30 | Misner | 3 | |
Полевая работа: Культурная идентичность: истории из концентрационного лагеря Штуттхоф [Польша: День 2 — 16 сентября 2019 г.] | B 1 1:10 — 12:30 | Misner | 3 |
Как визуализировать форму Django вручную
Работа с пользовательским вводом — очень распространенная задача в любом веб-приложении или веб-сайте.Стандартный способ сделать это — через HTML-формы, в которых пользователь вводит некоторые данные, отправляет их на сервер, а затем сервер что-то с ними делает. В настоящее время, есть вероятность, что вы уже слышали эту цитату: «Всякий ввод — зло!» Я не знаю, кто это сказал первым, но это было очень хорошо сказано. По правде говоря, каждый вход в ваше приложение — это дверь, потенциальный вектор атаки. Так что вы лучше закрепите все двери! Чтобы облегчить вашу жизнь и дать вам некоторое спокойствие, Django предлагает очень богатый, надежный и безопасный API форм.И вы обязательно должны его использовать, независимо от того, насколько проста ваша HTML-форма.
Управление пользовательским вводом, обработка форм — довольно сложная задача, поскольку она включает взаимодействие со многими уровнями ваше приложение. Он должен получить доступ к базе данных; очищать, проверять, преобразовывать и гарантировать целостность данные; иногда ему необходимо взаимодействовать с несколькими моделями, передавать удобочитаемые сообщения об ошибках, а затем наконец, он также должен перевести весь код Python, представляющий ваши модели, во входные данные HTML.В некоторых случаях, эти входные данные HTML могут включать код JavaScript и CSS (например, настраиваемое средство выбора даты или поле автозаполнения).
Дело в том, что Django очень хорошо выполняет серверную часть. Но это не сильно влияет на клиентскую часть. HTML формы, автоматически сгенерированные Django, полностью функциональны и могут использоваться как есть. Но это очень грубо, это просто простой HTML, без CSS и без JavaScripts. Это было сделано таким образом, чтобы вы могли полностью контролировать, как представлять формы. так, чтобы соответствовать веб-дизайну вашего приложения.На стороне сервера немного иначе, так как вещи больше стандартизирован, поэтому большая часть функций, предлагаемых API форм, работает «из коробки». А в особых случаях он предоставляет множество способов настройки.
В этом уроке я покажу вам, как работать с частью рендеринга, используя собственный CSS и делая ваши формы красивее.
Вот содержание статьи:
Рабочий пример
На протяжении всего урока я буду использовать следующее определение формы, чтобы проиллюстрировать примеры:
форм.ру
из форм импорта django
класс ContactForm (forms.Form):
name = forms.CharField (max_length = 30)
электронная почта = forms.EmailField (max_length = 254)
message = forms.CharField (
max_length = 2000,
widget = forms.Textarea (),
help_text = 'Напишите здесь свое сообщение!'
)
source = forms.CharField (# Скрытый ввод для внутреннего использования
max_length = 50, # сказать, с какой страницы пользователь отправил сообщение
виджет = forms.HiddenInput ()
)
def clean (self):
cleaned_data = super (ContactForm, сам).чистый ()
name = cleaned_data.get ('имя')
email = cleaned_data.get ('электронная почта')
message = cleaned_data.get ('сообщение')
если не имя и не адрес электронной почты, а не сообщение:
поднять формы.ValidationError ('Вы должны что-то написать!')
И следующее представление просто для загрузки формы и запуска процесса проверки, чтобы мы могли иметь форму в другом состояния:
views.py
из django.shortcuts import render
из .формы импорт ContactForm
def home (запрос):
если request.method == 'POST':
form = ContactForm (request.POST)
если form.is_valid ():
pass # ничего не делает, просто запускает проверку
еще:
form = ContactForm ()
return render (request, 'home.html', {'form': form})
Понимание процесса визуализации
Во многих руководствах или в официальной документации Django очень часто встречаются такие шаблоны форм:
Примечание: Может быть, вас интересует атрибут novalidate
в форме.В реальном случае вы, вероятно, не будете
хочу его использовать. Это предотвращает «проверку» данных браузером перед отправкой на сервер. Как в
примеры, которые мы собираемся изучить. У меня есть только «обязательные» ошибки в полях, это помешало бы нам увидеть на стороне сервера
фактическая проверка данных и изучение состояний ошибок при отрисовке формы.
Похоже на волшебство, правда? Поскольку эта конкретная форма может содержать 50 полей, а простая команда {{form}}
отобразит их все в шаблоне.
Когда мы пишем {{form}}
в шаблоне, на самом деле он обращается к __str__
из класса BaseForm
. Метод __str__
используется для предоставления
строковое представление объекта. Если вы посмотрите исходный код, вы увидите, что он возвращает as_table ()
метод. Итак, в основном {{form}}
и {{form.as_table}}
— это
тоже самое.
API форм предлагает три метода для автоматического отображения HTML-формы:
Все они работают более или менее одинаково, разница заключается в коде HTML, который обертывает входные данные.
Ниже приведен результат предыдущего фрагмента кода:
Но если Итак, правильный способ сделать это: Теперь это имеет смысл, верно? Без тега Если вы посмотрите на частный метод Я упоминаю здесь метод Так вот, вкратце, что делает Вот как выглядит второе состояние формы, вызывающее все ошибки проверки: Теперь, когда мы знаем, что он делает, мы можем попытаться имитировать то же поведение, используя механизм шаблонов. Таким образом, мы будем
иметь гораздо больший контроль над процессом рендеринга: Вы заметите, что результат немного отличается, но все элементы присутствуют.Дело в том, что автомат
создание HTML только с использованием Единственная реальная проблема — это случайное «Это поле обязательно» вверху, которое относится к исходному полю .Но мы можем
улучшить это. Давайте продолжим расширять визуализацию формы, чтобы мы могли еще больше контролировать ее: Намного ближе, правда? Теперь, когда мы знаем, как «расширить» разметку Нам не нужен цикл for для отображения полей формы.Но это очень удобный способ сделать это, особенно если вы не
есть особые требования к размещению элементов. Вот как мы можем ссылаться на поля формы одно за другим: Это не очень СУХОЕ решение.Но хорошо знать, как это делать. Иногда у вас может быть очень конкретный вариант использования, который
вам нужно будет самостоятельно разместить поля в HTML. Мы все еще можем копнуть глубже и расширить разметку На этом этапе Django использует небольшие шаблоны HTML для генерации
вывод HTML полей. Итак, давайте посмотрим, как это делает Django. Если мы откроем текст.html или
email.html из папки виджетов, мы увидим, что он просто включает
файл шаблона input.html: Это говорит о том, что шаблон input.html , вероятно, является наиболее общим, особенности рендеринга могут быть
внутри него. Итак, посмотрим: В основном этот небольшой шаблон устанавливает тип для ввода , это имя , которое используется для доступа к данным в запросе
объект. Например, вход с именем «сообщение», если он отправлен на сервер, доступен через По-прежнему во фрагменте шаблона input.html он также устанавливает текущее значение поля или оставляет его пустым, если
нет данных.Это важный элемент в шаблоне, потому что именно он сохраняет состояние формы после ее
отправлено и не было успешно обработано (форма недействительна). Наконец, он включает шаблон attrs.html, который отвечает за
установка атрибутов, таких как maxlength , требуется , заполнитель , стиль или любой другой атрибут HTML. Это
широкие возможности настройки в определении формы. Если вам интересно узнать об атрибуте attrs.html , вот как это выглядит: Теперь, если вы действительно хотите создать входные данные самостоятельно, вы можете сделать это следующим образом (только поле name для
краткость): Или немного лучше: Возможно, вы уже поняли, что это не лучший способ работы с формами.И, может быть, вы тоже спрашиваете себя
почему иногда мы называем определенный атрибут Я не хочу сейчас вдаваться в подробности, но в основном В любом определении формы В некоторых случаях вам нужно добавить только дополнительный атрибут HTML, например класс , стиль или заполнитель . Вам не нужно расширять поле ввода, как мы это сделали в предыдущем примере. Вы можете сделать это напрямую
в форме определения: forms.py Далее мы собираемся изучить стороннюю библиотеку, которая может облегчить вашу жизнь. Хотя мы можем управлять пользовательскими атрибутами HTML в определении формы, было бы намного лучше, если бы мы могли установить
их прямо в шаблоне. В конце концов, атрибуты HTML относятся к представлению входных данных. Библиотека django-widget-tweaks — подходящий инструмент для работы. Это позволяет сохранить настройки формы по умолчанию и просто добавить
что вам нужно. Это очень удобно, особенно при работе с ModelForms , так как сокращает объем кода.
вы должны писать для выполнения простых задач. Я не буду вдаваться в подробности о django-widget-tweaks , потому что у меня есть статья, посвященная этому:
Как использовать django-widget-tweaks. Вот краткое руководство по началу работы: Сначала установите его с помощью pip: Добавьте его в Загрузите его в шаблон: И мы готовы его использовать! В основном мы будем использовать тег шаблона Это очень удобно, особенно в тех случаях, когда вам просто нужно добавить класс CSS.Это случай использования
Шаблоны форм Bootstrap 4. В основном, чтобы использовать библиотеку Bootstrap 4, я просто включил ссылку CDN, которую они предоставляют, в свой
шаблон: Эта часть статьи будет более конкретной, так как я не буду исследовать особенности Bootstrap 4.
реализация.Их документация великолепна и богата примерами. Если вы не очень знакомы, вы можете перейти к
Раздел Документация / Компоненты / Формы для получения дополнительной информации. Давайте сначала сосредоточимся на представлении входных данных, мы вернемся к части ошибок позже. Вот как мы можем представить
та же форма с использованием тегов Bootstrap 4: Поля ввода выглядят неработающими. Это связано с тем, что формы Bootstrap 4 ожидают элемента управления формы класса CSS в
HTML-входы. Давайте исправим это с помощью того, что мы узнали в последнем разделе этой статьи: Намного лучше. Теперь давайте посмотрим на ситуацию с проверкой и ошибками. Я собираюсь использовать компонент alert для не
ошибки полей, а для полей я просто поиграю с правильными классами CSS, которые предоставляет Bootstrap 4. И вот результат: Это очень круто, потому что он отмечает зеленым цветом поля, прошедшие проверку: Давайте внимательно посмотрим, что происходит.Мы можем улучшить фрагмент кода, но я предпочел оставить его таким,
вы можете лучше понять логику рендеринга шаблона. Сначала я вызываю метод Затем, когда проверка уже прошла, я просто помечаю поле CSS-классом Теперь мы можем скопировать существующий код во внешний файл и повторно использовать наш фрагмент кода для других форм. включает / bs4_form.html Теперь определение формы может быть таким простым, как: Например, используя приведенный выше фрагмент кода, мы используем его для обработки Эта статья стала больше, чем я ожидал. Сначала я подумал написать просто краткое руководство по форме
рендеринг. Затем я вспомнил, что у меня уже есть подробное руководство, объясняющее
как использовать django-widget-tweaks. Поэтому вместо этого я решил углубиться в детали и
изучить некоторые механизмы API форм. У меня будет следующая статья, посвященная сложным формам, рендерингу всех флажков, полям выбора, дате
picker, а также о разработке собственных пользовательских виджетов. Надеюсь, вы узнали что-то новое или получили удовольствие от чтения этой статьи. Если у вас есть вопросы или вы хотите обсудить
подробнее по теме, пожалуйста, оставьте комментарий ниже! Как обычно, вы можете найти исходный код и все примеры на GitHub. {{form}}
и {{form.as_table}}
— одно и то же, вывод
точно не выглядит как стол, правда? Это потому, что as_table ()
и as_ul ()
не создают и
теги, поэтому мы должны добавить их сами.
браузер действительно не знает, как отображать
вывод HTML, поэтому он просто представляет все видимые поля в строке, поскольку у нас еще нет CSS.
_html_output
, определенный в BaseForm
, который используется всеми как методы _ * ()
, вы увидите, что это довольно сложный метод с 76 строками
код, и он делает много вещей. Ничего страшного, потому что этот метод хорошо протестирован и является частью ядра форм
API, лежащая в основе механика, которая заставляет все работать. При работе над собственной логикой отрисовки формы вам не нужно
напишите код Python для выполнения этой работы.Гораздо лучше делать это с помощью движка шаблонов Django, так как вы можете добиться большего
чистый и простой в обслуживании код. _html_output
, потому что мы можем использовать его для анализа того, какой код он генерирует, какой
он действительно работает, поэтому мы можем имитировать его с помощью механизма шаблонов. Это также очень хорошее упражнение, чтобы прочитать источник
code и освоитесь с ним. Это отличный источник информации. Хотя документация Django очень
подробный и обширный, здесь и там всегда есть какие-то скрытые детали.Вы также получите возможность увидеть на примерах
как умные кодеры решали конкретные задачи. В конце концов, это проект с открытым исходным кодом и зрелым процессом разработки.
что многие внесли свой вклад, так что, скорее всего, вы читаете оптимальный код. _html_output
:
{{form}}
использует преимущества языка Python, поэтому
может играть с конкатенацией строк, объединением списков (ошибки без полей + ошибки со скрытыми полями) и тому подобное.
Механизм шаблонов более ограничен и ограничен, но это не проблема. Мне нравится движок шаблонов Django, потому что
он не позволяет выполнять большую часть логики кода в шаблоне.
{{form}}
, давайте попробуем сделать ее красивее.
Возможно, используя библиотеку Bootstrap 4. Доступ к полям формы по отдельности
Расширение полей формы
{{field}}
(или, если вы делаете это индивидуально,
например, поля {{form.name}}
или {{form.email}}
).
Но теперь все становится немного сложнее, потому что мы говорим о виджетах.Например, имя поле
преобразуется в тег
, а поле электронной почты преобразуется в
тег, и, что еще более проблематично, поле сообщения преобразуется в Тег
.
{% include "django / forms / widgets / input.html"%}
request.POST ['сообщение']
.
{% для имени, значения в widget.attrs.items%}
{%, если значение не False%}
{{name}} {%, если значение не истинно%} = "{{value | stringformat: 's'}}" {% endif%}
{% endif%}
{% endfor%}
{{form.name.
, а в других ситуациях
мы используем {{form.name.field.
. form.name
— это BoundField
(поле + данные)
instance, а затем form.name.field
— это определение поля, которое является экземпляром forms.CharField
.Это
почему одни значения доступны в экземпляре связанного поля, а другие — в определении поля char. __iter__
формы возвращает список из экземпляров BoundField
, аналогично visible_fields ()
и hidden_fields ()
методы также возвращают экземпляров BoundField
. Теперь, если вы получите доступ к form.fields
, это относится к списку CharField
, EmailField
и всем другим определениям полей и т. Д.Если это тоже
много информации для вас прямо сейчас, ничего страшного, вам не нужно беспокоиться об этом прямо сейчас. Использование пользовательских атрибутов HTML
класс ColorfulContactForm (forms.Форма):
name = forms.CharField (
max_length = 30,
widget = forms.TextInput (
attrs = {
'стиль': 'цвет границы: синий;',
'placeholder': 'Напишите здесь свое имя'
}
)
)
электронная почта = forms.EmailField (
max_length = 254,
widget = forms.EmailInput (attrs = {'style': 'border-color: green;'})
)
message = forms.CharField (
max_length = 2000,
widget = forms.Textarea (attrs = {'style': 'border-color: orange;'}),
help_text = 'Напишите здесь свое сообщение!'
)
Использование настроек виджета Django
pip install django-widget-tweaks
INSTALLED_APPS
:
INSTALLED_APPS = [
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.сессий ',
'django.contrib.messages',
'django.contrib.staticfiles',
'widget_tweaks',
]
{% load widget_tweaks%}
{% render_field%}
. Вы будете
посмотрите в следующем примере, что мы можем просто поместить атрибуты, как если бы мы делали это с необработанным HTML:
Визуализация бутстрапа 4 форм
{% load widget_tweaks%}
{% load widget_tweaks%}
form.is_bound
. Он сообщает нам, есть ли в форме данные или нет. Когда мы впервые инициализируем форму form = ContactForm ()
, метод form.is_bound ()
вернет False
. После отправки form.is_bound ()
вернет True
. Итак, мы можем поиграть с ним, чтобы узнать, произошел ли уже процесс проверки или нет. .is-invalid
и . Действительно
, в зависимости от случая. Они отвечают за окрашивание компонентов формы в красный или зеленый цвет. Повторное использование компонентов формы
{% load widget_tweaks%}
{% для скрытого_поля в форме.hidden_fields%}
{{hidden_field}}
{% endfor%}
{% if form.non_field_errors%}
UserCreationForm
, которая является встроенной формой
который живет внутри django.contrib.auth
модуль. Ниже результат: Выводы