Vikhrmodels/habr_qa_sbs huggingface dataset:
Вопрос: Как сделать: если текст не помещается по ширине блока и переносится на другую строку, то уменьшить размер текста так, чтобы он вмещался в одну строку?

Лучший ответ:
Используй js, проверяй количество знаков в строке, в зависимости от их количества (попадания в интервал) присваивай нужный font-size. Логика у тебя теперь есть, код напиши сам, заодно поймёшь его.

Худший ответ:
Одно из этих свойств css сделает текст резиновым
font-size: 5vmax; 
font-size: 3vw;
Вопрос: Чем управлять модулями?

Лучший ответ:
Можно забирать модуль не из npm, а напрямую из git репозитория.
А можно и в npm паблишить обновленные версии.
Если вам нужно редактировать модуль прям на месте, луше тогда подключить этот код как git submodule, а не пакет npm. Редактировать прям в node_modules не стоит.

Худший ответ:
Если изменения нужно вносить часто, сопоставимо с изменениями в самом проекте, тогда это не стоит выносить как отдельный модуль.
А теперь как мне оперативно изменения внести в этот модуль? Прямо в node_modules править (выискивая свой модуль каждый раз в этой огномной простыне), потом прямо оттуда-же пушить изменения, а затем паблишить их?
Можно установить локальный пакет (npm i ../module-folder): в самом проекте (в package.json будет путь к пакету, вместо версии на npmjs) или выделить дев проект-обертку, чтобы в основном проекте каждый раз не свапать этот пакет между локальным и удаленным. Таким обрабом можно с тем же HMR нормально редактировать пакет, без правок в node_modules и публикаций на каждый чих
Вопрос: Проектирование сайта с чего начинать?

Лучший ответ:
Делайте как можете, в процессе скорее всего будут мысли как что-то упростить/улучшить. Постепенно будете понимать для чего было сделано так, а не иначе. Тупое повторение почти ни к чему не приведёт
Читайте про шаблоны проектирования и вникайте
Полезно почитать Совершенный кодТакже я не понимаю в каком случае нужно делать API сервер, а в каком случае обычный сервер
Скорее backend, а не сервер. API делается для упрощения поддержки. У вас получается единая точка для работы с сайтом, с которой может взаимодействовать фронтенд (например делая AJAX запросы), мобильное приложение и всякое другоеЯ знаю о таком шаблоне как MVC, но я все равно не понимаю почему он именно такой, и почему именно так устроен.
У всего есть причина и это значит, что шаблон решает какую-то проблему. Есть много других шаблонов (например MVC, MVVC), для веб приложений MVC - простой способ разделить обязанности, но никто не обязывает вас следовать ему, можете попробовать другие шаблоны

Худший ответ:
Посмотрите, что такое OctoberCMS (у нее есть переведенная документация). 
Ваши хотелки здорово напоминают то, что в ней реализовано из коробки. 
Даже если не хотите готового - удачный образец для подражания.
Вопрос: Законно ли использование поп-образов в дизайне сайта?

Лучший ответ:
Не законно, но всем как бы плевать. Всё сводится к тому, что правообладатель жалуется и просит удалить, и контент удаляют, но жалобы бывают довольно редко. Контрпримеры приводить не нужно, потому что редко не значит никогда.
Изучите тему с поправкой 13 в Евросоюзе, это как раз про блокировку всего и вся, что нарушает авторские права, и почему такой резонанс поднялся.

Худший ответ:
Не законно, но всем как бы плевать. Всё сводится к тому, что правообладатель жалуется и просит удалить, и контент удаляют, но жалобы бывают довольно редко. Контрпримеры приводить не нужно, потому что редко не значит никогда.
Изучите тему с поправкой 13 в Евросоюзе, это как раз про блокировку всего и вся, что нарушает авторские права, и почему такой резонанс поднялся.
Вопрос: Массово редактировать страницы Wordpress (чистка после вируса)?

Лучший ответ:
Сливаешь таблицу, реплейсом удаляешь скрипт, заливаешь обратно replace into

Худший ответ:
Писать SQL или попробовать 
https://uk.wordpress.org/plugins/better-search-replace/
Предварительно сделав бекап всего хозяйства
Вопрос: Насколько важна роль логотипа на начальном этапе?

Лучший ответ:
Если ваш проект отталкивается от логотипа - это немного странно. Логотип должен быть целостным вместе с остальным дизайном, если ваш логотип сделан очень круто, а остальной дизайн - "привет из 90-х", значит с вашим дизайнером или дизайном что-то не так. Каким бы не был хайп треш агенством студия Лебедева, они делают очень большие деньги и толкают продукт. Вам может не нравится то что они делают, но вы не можете отрицать их эффективную бизнес модель которая продвигает даже дерьмо)

Худший ответ:
На начальном этапе, я бы не советовал вкладывать много средств в логотип. В первую очередь для потребителя важно качество товаров/услуг. Запоминается именно это, а не логотип. Если Ваша продукция посредственна, то хоть 1000 раз покажите свой лого человеку,  и он все равно не скажет что вы производите. Главное требование к логотипу на начальном этапе, это что бы он был приемлемый. Обычной логотип, отражающий чем вы занимаетесь. не нужно ничего особенно. Сосредоточиться стоит именно на качестве услуг. Правило 80 на 20.
Вопрос: Могу ли я получать оплату на расчетный счет ИП от физ. лиц?

Лучший ответ:
С прошлого года практически все расчеты с физиками - ИП и ЮЛ должны выдавать/формировать кассовый чек.
Есть небольшие категории, которые пока могут работать по БСО, но это надо подробно смотреть 54ФЗ... да и то это временно... Кстати в ближайшее время чеки надо будет формировать даже в наличных расчетах межу юрлицаими и ип...
Так что общий ответ - да, можно [но необходимо использовать кассовый аппарат]

Худший ответ:
Да. Ты можешь выставить счет физ. лицу. (Только погугли все нужные данные которые должны быть прописаны в счете). Но тут ты должен будешь делать и договор, и акт.
Если без договоров и актов хочешь - придется подключать эквайринг. А это еще и онлайн кассы в добавок.
Вопрос: Как использовать винт windows на linux?

Лучший ответ:
Windows понимает NTFS. Хотите использовать диск на обеих ОС - юзайте NTFS, так будет удобнее всего. Лично я когда-то делил диск на два раздела: один для данных под Win, а второй для данных под Linux.

Худший ответ:
Для Линукс можно поставить драйвера для ntfs файловой системы и читать виндовые диски.
Вопрос: Рынок digital-услуг переполнен?

Лучший ответ:
Вы правы, рынок очень переполнен, переполнен второсортными специалистами которые не хотят развиваться, но в тоже время просят огромную зп за свои soft скилы, в нашей компании месяц вели поиск человека на должность бэкендера Node.js, рекрутеры просто поседели от уровня тупизны которую хвостом тянут за собой "специалисты"

Худший ответ:
Я тоже охреневаю. Но всё зависит от задач и инструментов. Очень многие хотят бабла много и быстро и на этом растёт всё что угодно.
Вопрос: Дизайнер интерфейсов с нуля. С чего начать и как двигаться?

Лучший ответ:
UX/UI – не sketch или figma. Это совокупность знаний из разных отраслей — технической, творческой + психология. Это большой объем знаний и умений. 
Учите html/css/js (базовые понятия), читайте все что возможно по типографике (это основной пункт для дизайнеров), колористике, композиции, читайте исследования по UX (их масса, есть большие труды, но в основном англоязычные, начните с Купера, как вариант). И в процессе всего этого практика, практика, практика. Потому что, к сожалению, без нее никуда. Вы будете круты настолько — сколько кейсов запилите. Успехов!

Худший ответ:
Ну вам тяжело будет. Чтобы что-то получилось надо очень много работать. А учитывая вашего малыша, времени у вас совсем немного. Т.е. вам придется все свое свободное время тратить на освоение этой профессии.
Если вы хотите именно UI/UX, то вам кровь-из-носа надо понимать как эти интерфейсы создают на програмном уровне, что можно сделать, а что нельзя. Т.е. надо еще параллельно с типографиками и композициями подучить html+css. 
Но ничего невозможного нет. Если это дело прет, то все будет. 
Успехов!
Вопрос: Как искать людей на стажировку на FrontEnd?

Лучший ответ:
Раздавать флаеры в универах

Худший ответ:
Я готов.
Вопрос: Нужна ли дефрагментация RAID1 на аппаратном контроллере LSI SAS9211-4i?

Лучший ответ:
raid не требует дефрагментации потому что в нем нет такой сущности, дефрагментацию требует файловая система, которая может быть размещена на raid массиве.
Запустите инструмент дефрагментации от майкрософта, он проанализирует и посоветует вам, нужна ли она или нет. Обычно, если свободное место на вашем диске никогда не уменьшалось меньше 30% (на самом деле зависит от характера использования, и может быть хватит и 10%) от общего объема, то файлы на диске не будут фрагментированы в принципе.
Фрагментация появляется, если во время записи (увеличения) файла, места на диске мало, и система начинает его распихивать по дыркам, оставшимся от удаленных ранее файлов.

Худший ответ:
Нет
Проще перейти на ссд если нужен перформанс
Вопрос: Как правильно добавлять блок на страницу через jq?

Лучший ответ:
Как вариант, можно добавить нужный вам блок в хтмл(где то внизу, где он вам не будет мешать и скрыть). Через jq найти этот блок и записать его в переменную. А дальше эту переменную вставлять куда вам надо. Так себе решение, но мб пригодится.

Худший ответ:
$('html вашего DIV').insertAfter('селектор(ы) определенного элемента'); // вставить после определенного элемента
Вопрос: Какие есть Java курсы?

Лучший ответ:
Java курсы есть очные, есть вебинары, есть записи на ютубе и есть книжки-самоучебники.

Худший ответ:
javarush.ru - платный
stepik.org - бесплатный
udemy.com платный/бесплатный
Вопрос: Почему не открываются внутренние страницы сайта на WP?

Лучший ответ:
Проверьте .htaccess# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

# END WordPress

Худший ответ:
1) удалите htaccess
2) зайдите в админку - Настройки - Постоянные ссылки и обновите страницу
page.php index.php single.php и т.д. это просто шаблоны...
Например. single.php выводит записи
page.php страницы  
А вот, как будет выглядеть урл, смотрите в разделе Постоянные ссылки
Вопрос: Как сделать авторизацию на сайт при парсинге через requests?

Лучший ответ:
На коленке состряпал, вроде работает:
import requests

url = "https://login.dnevnik.ru/login/esia/karelia"
#url на свой регион заменишь, там когда на сайте авторизуешься он отображается

login = 'логин'
password = 'пароль'
session = requests.Session()
get_cookies = session.get(url)
captcha_id = get_cookies.cookies['dnevnik_sst'].split('|')[0]
print(captcha_id)

data = {
	'exceededAttempts': False,
	'login': login,
	'password': password,
	'Captcha.Id': captcha_id
}

response = session.post(url, data)
Для всех операций используешь объект session, в нём будут сохранятся куки, и потом можно обращаться к страницам, как будто ты авторизованный, например так:
my_class_html = session.get('https://schools.dnevnik.ru/class.aspx')

schedule_html = session.get('https://schools.dnevnik.ru/homework.aspx')

Худший ответ:
Как правило, любой сайт при авторизации устанавливает в браузер куки. Браузер при каждом запросе сообщает эти куки на сайт, благодаря чему тот "понимает" какой пользователь совершил запрос. Соответственно тебе нужно передавать эти куки при каждом запросе так же как браузер. Вряд ли в Дневнике используется что-то хитрее.

Начать можно с того, что залогиниться на сайте и собрать все куки для домена сайта. В Хроме это делается так: F12 — Application — Storage — Cookies. Захадрдкодь найденные куки:
cookies = {
    '_ym_isad': '...',
    '_gid': '...',
    '_ym_uid': '...',
    '_ga': '...',
    '_ym_d': '...',
    '_gat': '...',
    '_gat_main': '...',
}
r = requests.get(url, cookies=cookies)
Если это сработает, тогда думай сценарием авторизации из своего скрипта.
Вопрос: Что лучше для простых анимаций? CSS или JavaScript?

Лучший ответ:
Лучше CSS, если возможно.
JS может быть отключён у пользователя. И хорошо, если ваши анимации просто не будут работать. Плохо, если сайт станет менее удобным из-за этого.
Однако на JS можно то, что нельзя на CSS. В общем, на JS можно практически всё. И в некоторых случаях проще и красивее делается именно на JS. В этом смысле нужно отталкиваться от того, что вам удобнее применить в данном конкретном случае.

Худший ответ:
В помощь 
https://daneden.github.io/animate.css/
Вопрос: Как построить бинарное дерево с помощью списка смежности?

Лучший ответ:
Обходом естественно.

Худший ответ:
Я так понимаю, на входе у вас массив, содержащий списки соседей(индексы) для каждой вершины графа.
Берите любую вершину, у которой кол-во соседей меньше либо равно двум, и назначаете ее корнем.
Для любой вершины корнем левого поддерева будет первый сосед в списке (если есть), который не совпадает с родительским. Рекурсивно строите левое поддерево. 
Корнем правого поддерева будет второй сосед в списке (если есть), который не совпадает с родительским. 
Рекурсивно строите правое поддерево.
В итоге получите несортированное несбалансированное бинарное дерево
Вопрос: Ноут стал очень сильно тормозить в одно мгновение, как решить проблему?

Лучший ответ:
Надо бы жёсткий диск проверить. Есть другой ПК под рукой?
Ставлю на битый диск.

Худший ответ:
Слабые компы с Win7 после второго вторника месяца "насасывают" обновлений и могут долго выключаться, 1-2 часа включаться утром, притормаживать пока штатно не перезагрузятся, ...
Но в тот день я его также выключил на ночь, он должен был обновится, я это видел, но после обновления он завис или что-то подобное, короче, остановился на "завершение работы". Пришлось выключать с помощью кнопки.
Зачем? В чем проблема оставить ноут на ночь включенным? Пусть делает свои дела.
Вопрос: На какую зп можно рассчитывать работать на удаленке QA-инженером?

Лучший ответ:
 Я прекрасно понимаю, что единственный вариант, когда они будут нанимать человека из СНГ региона - это более низкая зп. 
Вообще нет. На более низкую ЗП проще нанять удаленного индуса. Или вообще местного.
Единственный вариант, когда они будут нанимать человека из СНГ региона - хорошие знания и профессионализм, которых нельзя найти поближе. А деньги - дело вторичное.

Худший ответ:
Если у вас имеется квалификация в области QA-automation, причем вы говорите по-английски, пишете код и т.д., то можете рассчитывать на рейт $30-35/hr.
You have to have competitive skillset to get the job at the given rate.
And check this out https://www.indeed.com/q-QA-Engineer-Remote-jobs.html
Вопрос: Как попрактиковаться в js с минимум знаний?

Лучший ответ:
Я в начале пути просто игрался с консолью. Менял поведение каких-нибудь штук на сайтах, собирал какие-нибудь данные и тд.

Худший ответ:
Попробуйте codewars, на первых уровнях там довольно простые задачки.
Старайтесь не заглядывать в решения до того, как сделаете свою версию. Потом сравнивайте свое решение с решениями других, смотрите что они сделали лучше вас.
Вопрос: Как изучить создание операционной системы для одно платника на Cortex A9?

Лучший ответ:
Просто взять и написать свою операционку под какой-то первый попавшийся одноплатник невозможно.
Но реально скачать уже готовую ОС конкретно под эту плату, с драйверами и т.п. и доработать под свои нужды.

Худший ответ:
И можно ли найти примеры работ под микропроцессоры с описанием? Есть ли стимуляторы достойные для учёбы?
Вопрос: Могу ли я научиться веб дизайну на минимальном уровне?

Лучший ответ:
А чёрт его знает, сможете или нет.
Лучше задайтесь вопросом: "А зачем? Стоит ли тратить время на то, что не принесёт мне ни копейки?".

Худший ответ:
На минимальном сможешь конечно. Опыт и ориентир на хорошие работы оставят свой отпечаток. Главное, чтобы какой-никакой вкус был
Вопрос: Разработка в Windows 10 под Linux с Docker?

Лучший ответ:
Просто поставьте себе VirtualBox. Делаете один раз базовую настройку нужной версии нужной ОС. Далее делаете нужное количество клонов ОС в один клик для нужных вариантов рабочего окружения. И далее используете нужную ОС. Как виртуалка сломается — делаете новый клон с чистой ОС.

Худший ответ:
В разработке под пхп онли проблем не будет.
Под пхп дата волюмы надо только для бд использовать, потому что если под виндой примонтировать бд в папку, то например постгре даже не стартанет, либо если специфичные права нужны.
В шторме есть поддержка докера, но там все очень неудобное и странное, лучше портейнер использовать, там все просто, удобно и наглядно. Гит команды на хосте, остальное в контейнере запускать.
С правами проблемы, если примонтирована папка и нужные особые права, поскольку их изменить не выйдет. С переносами да, в исходниках это неакутально, а вот башевские скрипты и разные env проблем могут доставить, но это легко решается если залезть в настройки ide.
В виндовс есть более серьезные проблемы, например нет поддержки fs.notify, то есть хот релоад в гоу/js/любой другой язык, работать не будут. Докер требует включенные hyper-v, эмулятор андроид студии требует его выключить(а для этого нужна перезагрузка), то есть под виндой адекватно развернуть бэк в докере и смотреть результат в симуляторе не выйдет, есть правда решение в лице отстойного симулятора от микрософта. Геморрой с ресурсами, если есть какой-то хорошо жрущий контейнер, хрен настроишь его работу. Разные специфичные имеджи с докер хаба тоже работать не будут либо будут выдавать странные ошибки.
Касательно отказа от винды, я последний раз винду запускал года полтора тому назад. Популярные игры прекрасно работают и под линукс, если игра есть под мак, она с вероятностью 90% будет и под линукс. Если так сильно винда нужна, то есть вайн либо можно виртуалку поднять.
Вопрос: InnerText не подстанавливает текс в span. В чем может быть причина?

Лучший ответ:
1. Вы пытаетесь получить селектор field-name__clb, а в HTML коде у вас определен .field-name__clb
2. В коде отсутствует вызов функции fieldsName
3. document.querySelector выберет только первый элемент, который совпадает с определенной группой селекторов

Худший ответ:
Пример
Вопрос: Desktop SSD или таки Enterprise в сервер?

Лучший ответ:
Чем чреват такой выбор? Проблемами. Возможно большими проблемами
Надо просто понимать чем отличаются SSD энтрерпрайз класса от обычных -

Процессор - в энтерпрайз ставятся производительные процессоры, способные одновременно обслуживать ввод/вывод и уборку мусора. А в десктопных можно экономить - поставить процессор попроще, уборку мусора он будет делать когда нет ввода/вывода.
Оперативная память - для работы диска нужна оперативка, чтобы хранить кэш, и данные при уборке мусора. 
В обычном диске на ней можно экономить.
Резерв ячеек - в дисках энтерпрайз класса тупо больше резерв ячеек, и зачастую достигает 40-50%. В обычных достаточно 4-7%.
Прошивка дисков энтерпрайз класса умеет работать в массивах, в отличии от обычных.
Прошивка дисков энтрерпрайз класса не увлекается хитрыми схемами кэширования. Поэтому под небольшой нагрузкой десктопный диск будет быстрее энтерпрайза, а вот под длительной нагрузкой энтерпрайз будет работать без проблем, а десктопный будет тупить


Если вам реально нужен 10рэйд по каким то причинам, я бы не рекомендовал пихать туда  Samsung 860 PRO 
Если вы хотите использовать  Samsung 860 PRO  в сервере - почему бы и нет. Во многих случаях он будет работать не хуже, а бывает и лучше чем диск энтерпрайз класса. Зависит от задач которые будет выполнять сервер.

И еще - не рекомендую на встроенном контроллере делать что-то кроме зеркала. Если надо что-то круче зеркала  - только покупка нормального контроллера. Если вдруг возникает мысль что нормальный контроллер это дорого, это означает что рэйд вам попросту не нужен.

Худший ответ:
Первое, не делать аппаратный рейд. Иначе потом, после того как контролер сделает #ХЕРАКС, вам придется искать такой же.

Энтерпрайзные SSD отличаются тем, что имеют аппаратную защиту своего кэша от внезапного отключения питания, поэтому они что со включенным, что с отключенным fsync работают одинаково быстро.

Домашний же SSD может показать завал производительности и 1000% при параллельной работе на синхронную запись.
Вопрос: Как автоматизировать очистку папок TEMP?

Лучший ответ:
1. Она и так чистится сама.
2. Планировщик Windows позволяет создавать задачи, которые будут реагировать на конкретные события, например вход или выход (возможно) юзера. Создаем batch или cmd скрипт с очисткой директории. Создаем задачу в планировщике, выбираем событие и скрипт. 
3. Очистка при виходе из системы - очень плохая идея, т.к. идёт завершение сеанса, а вы хотите плодить задачи. Задача может быть завершена принудительно, не выполнив свою задачу или замедлить завершение работы.

Худший ответ:
Для полуавтоматической (придётся самому запускать файл) очистки папки TEMP нашёл такой способ:1. Открываем «Переменные среды»


2. Меняем переменные TEMP и TMP на – C:/Windows/Temp


3. Открываем любой текстовый редактор и вставляем данный код:pushd %TEMP% && rd /s /q . > nul 2>&1
pushd %WinDir%\TEMP && rd /s /q . > nul 2>&1Сохраняем файл в корне диска С, под любым именем, но с расширением .cmd, например: Сценарий очистки TEMP.cmd

4. Запустить файл, чтобы исполнить сценарий очистки папки TEMP (папка очистится от временных файлов).

Для автоматической очистки папки TEMP при входе в систему, нашёл такой способ:

1. Открываем «Переменные среды»



2. Меняем переменные TEMP и TMP на – C:/Windows/Temp
— и нажимаем «ОК» в окне «Переменные среды».

3. Открываем любой текстовый редактор и вставляем данный код:pushd %TEMP% && rd /s /q . > nul 2>&1
pushd %WinDir%\TEMP && rd /s /q . > nul 2>&1Сохраняем файл в корне диска С, под любым именем, но с расширением .cmd, например: Сценарий очистки TEMP.cmd

4. Запускаем редактор групповых политик: Пуск → Выполнить → вводим команду gpedit.msc

5. «Конфигурация компьютера» → «Конфигурация Windows» → «Сценарии» → «Автозагрузка» —

— «Добавить» → «Обзор» → «Сценарий очистки TEMP.cmd» (ищите там, где вы его разместили) → «ОК» → «ОК»


6. Проделайте подобные шаги и для конфигурации пользователя: «Конфигурация пользователя» → «Конфигурация Windows» → «Сценарии» → «Вход в систему»


7. При входе в систему будет происходить очистка папки TEMP.
Вопрос: Как достать kwargs из url в DRF?

Лучший ответ:
Кривоватое решение. Достаточно передать несуществующий id прилетит 500.
Поэтому все первичные ключи нужно валидировать.class RatingSerializer(serializers.Serializer):
    user = serializers.PrimaryKeyRelatedField(queryset=User.objects.all())
    rating = serializers.IntegerField(min_value=1, max_value=5)

    def create(self, validated_data):
        user = validated_data['user']
        rating = validated_data['rating']
        profile = Profile.objects.get(user=user)
        rating_obj = Rating.objects.create(profile=profile, rating=rating)
        return rating_obj
А вьюха должна тогда выглядеть так:class RatingAdd(generics.GenericAPIView):
    serializer_class = serializers.RatingSerializer
    permission_classes = [IsAuthenticated]

    def post(self, request, **kwargs):
        data = request.data.copy()
        data.update({'user': kwargs['userid'}})
        serializer = self.get_serializer(data=data)
        serializer.is_valid(raise_exception=True)
        serializer.save()

        return Response(serializer.data, status=status.HTTP_201_CREATED)
(upd) Сорян, поправил вьюху, т.к. не удалил кусок оригинального кода.
Что до вопроса про kwargs, то непонятно чего вы ждали, ведь это же kwargs ViewSet'a а не сериализера. Тут нужно быть осторожным, но вообще их можно выковырять из контекста, так как ApiView.get_serializer() еще пропихивает в сериализер контекст:def create(self, validated_data):
    view = self.context.get('view')
    userid = view.kwargs['userid'] if view else None
    if not userid:
        raise NotFound('User with given id does not exist.')
    rating = Rating.objects.create(profile=Profile.objects.get(user__id=userid), **validated_data)
    return rating

Худший ответ:
Проблема решена, я убрал метод create из сериализатора и переписал View:class RatingAdd(generics.GenericAPIView):
    # Отправка оценки специалисту

    serializer_class = serializers.RatingSerializer
    permission_classes = [IsAuthenticated]

    def post(self, request, user__id):
        serializer = self.get_serializer(data=request.data)
        serializer.is_valid(raise_exception=True)
        serializer.save(profile=Profile.objects.get(user__id=self.kwargs['user__id']))

        return Response(serializer.data, status=status.HTTP_201_CREATED)