@pydjango
Django

Полезная информация и правила: https://github.com/amureki/django_faq Вакансии и резюме: @django_jobs Пофлудить идём сюда: @django_flood Статистика чата: combot.org/chat/-1001063854692

1741 members

Архив канала @pydjango 16 ноября 2016 г.

12:39:46 ДП
User 223620233
кажется в else должно быть form = CreateTread(), yt ?
12:40:00 ДП
User 223620233
User 82569033
Можете подсказать со вьюхой и формой?Есть такая вьюха
def CreateTread(request, name_board):
    if request.POST:
        form = CreateTread(request.POST, request.FILES)
        if form.is_valid():
            form.save()
    else:
        form = CreateTread
        return render(request,'CreateThread.html', {'form': form, 'name_board': name_board})
В шаблоне вывожу её вот так
        <form enctype="multipart/form-data" method="post" action="{% url 'CreateThread' name_board %}">
            {{ form }}
            <input type="submit" class="button" value="Отправить">
        </form>
На выходе получаю только кнопку
скобки забыл
12:47:16 ДП
User 100243492
User 223620233
скобки забыл
да и неплохо бы туда передать реквест, а то будет безхозно висеть
12:47:31 ДП
User 100243492
Либо рендерить ошибки формы
02:02:20 ДП
User 227690605
Попробуй функцию переименовать
07:16:35 ДП
User 226624052
Дурным тоном считается писать функции КэмэлКэйсом и классы снейк_кейсом, на будущее
09:09:48 ДП
User 211270198
User 226624052
Дурным тоном считается писать функции КэмэлКэйсом и классы снейк_кейсом, на будущее
Кто сказал?)
09:11:46 ДП
User 226624052
User 211270198
Кто сказал?)
09:12:09 ДП
User 226624052
Диктатор сказал
09:13:35 ДП
User 211270198
User 226624052
А теперь скажи это гуглу ;)
09:14:21 ДП
User 226624052
User 211270198
А теперь скажи это гуглу ;)
http://stackoverflow.com/questions/14530524/capwords-conventions-get-myclass-or-get-my-class
stackoverflow.com/questions/14530524/capwords-conventions-get-myclass-or-get-my-class
This is a style conventions question. PEP8 convention for a class definition would be something like class MyClass(object): def __init__(self, attri): self.attri = attri So say I wan...
09:14:26 ДП
User 226624052
Ещё немного
09:14:48 ДП
User 226624052
По поисковому запросу Class names should normally use the CapWords convention.
09:15:21 ДП
User 226624052
Сразу тычет в пеп8, потом тычет на этот вопрос
09:15:32 ДП
User 211270198
Я про то, что пеп8 - рекомендации, и если в какой-то компании приняты другие стандарты - то это совсем не считается "дурным тоном"
09:16:14 ДП
User 226624052
User 211270198
Я про то, что пеп8 - рекомендации, и если в какой-то компании приняты другие стандарты - то это совсем не считается "дурным тоном"
Хз, как в компании могут писать на питоне, не соблюдая стандарты языка
09:16:28 ДП
User 211270198
Я бы понял если в изначальной предьяве было слово про пеп8, но там было лишь про какие-то дурные тона)
09:16:36 ДП
User 211270198
User 226624052
Хз, как в компании могут писать на питоне, не соблюдая стандарты языка
Гу-гол
09:17:35 ДП
09:17:44 ДП
User 226624052
User 211270198
Я бы понял если в изначальной предьяве было слово про пеп8, но там было лишь про какие-то дурные тона)
А не соблюдение философии питона(самого идеального что не есть на этом свете) - не дурной тон?
09:17:54 ДП
User 226624052
Ну, pyqt - Апи к кутэ
09:18:15 ДП
User 211270198
User 226624052
А не соблюдение философии питона(самого идеального что не есть на этом свете) - не дурной тон?
Как рекомендации по именованию соотносятся с философией?
09:18:39 ДП
User 226624052
User 211270198
Как рекомендации по именованию соотносятся с философией?
Читается удобнее, хз
09:18:43 ДП
User 211270198
Я чето не вижу в дзене ничего про camel case
09:19:09 ДП
User 226624052
Ну, ты придираешься к словам, сам-то ты меня прекрасно понимаешь
09:19:27 ДП
User 211270198
Понимаю о чем ты, но не согласен
09:19:46 ДП
User 211270198
И как бы об этом и пишу)
09:20:11 ДП
User 226624052
Ну выставь тогда свою точку зрения, а не вытягивай с меня по одному слову, наталкивая на логическую цепочку
09:20:34 ДП
User 211270198
Так уже:
09:20:34 ДП
User 211270198
Я про то, что пеп8 - рекомендации, и если в какой-то компании приняты другие стандарты - то это совсем не считается "дурным тоном"
09:20:52 ДП
User 211270198
А потом началост что-то про философию
09:21:10 ДП
User 211270198
Строчки тоже в n символов делаешь и не больше?)
09:21:33 ДП
User 226624052
Не всегда :D
09:22:39 ДП
User 211270198
А если в компании вместо 79 принято 99 символов - является ли это "несоблюдением философии питона"?
09:23:12 ДП
User 183302322
django на 100 строк вроде бы
09:24:04 ДП
User 183302322
но названия уродские не поддерживаю
09:24:09 ДП
User 211270198
Про то и речь)
09:24:23 ДП
User 183302322
pylint есть и всякие хайлайтеры
09:24:43 ДП
User 183302322
чем ближе к стандартам тем меньше думать
09:25:09 ДП
User 211270198
Кстати, а с чего вообще это все началось?
09:25:20 ДП
User 211270198
А вижу
09:25:36 ДП
User 211270198
Функция camel case
09:29:01 ДП
09:29:58 ДП
User 226624052
Богер, раз ты тут
09:30:10 ДП
User 226624052
Зайди в питон основу, мб что-нить подскажешь по моему вопросу
09:30:21 ДП
User 226624052
Потому что все морозятся
09:30:22 ДП
09:39:42 ДП
User 2895769
User 211270198
А если в компании вместо 79 принято 99 символов - является ли это "несоблюдением философии питона"?
вот это единственное, что я нарушаю в PEP 8
09:40:10 ДП
User 2895769
у меня 180)
09:40:24 ДП
User 2895769
да, все с мониторами меньше 27" идут в жопу)
09:40:41 ДП
User 2895769
а если 27" - проблем нет
09:41:28 ДП
User 2895769
у Python такое ограничение в 79 символов было сделано в связи со старыми ограничениями, когда на экран больше не влезало, но сейчас 2016 год
09:41:43 ДП
09:41:45 ДП
User 2895769
это требование из PEP8 вообще стоит убрать как устаревшее
09:41:59 ДП
User 226624052
Тоже только этого наверное и только не соблюдаю
09:41:59 ДП
09:43:53 ДП
User 72265001
User 2895769
у Python такое ограничение в 79 символов было сделано в связи со старыми ограничениями, когда на экран больше не влезало, но сейчас 2016 год
Ох зря вы так спешите хоронить это. К тому же такое ограничение заставляет думать над такими вещами как компактные и точные имена переменных, а не городить super_users_command_statuses и прочее. Как по мне, так это полезная штука
09:44:48 ДП
User 2895769
User 72265001
Ох зря вы так спешите хоронить это. К тому же такое ограничение заставляет думать над такими вещами как компактные и точные имена переменных, а не городить super_users_command_statuses и прочее. Как по мне, так это полезная штука
это лучше чем a =
09:44:51 ДП
User 72265001
Дисциплинирует хорошо
09:45:02 ДП
User 2895769
потому что меньше ошибок
09:45:54 ДП
User 2895769
можно spr_usr_cmd_sttss =
😂
09:46:42 ДП
User 72265001
Ну так и "a" и "superl_long_variable_name_here" обе крайности. Нужно головой же думать. Ну если у вас 79 символов вызывают потребность использовать a=, то печалька конечно
09:47:00 ДП
User 2895769
у меня обычно 2 слова
09:47:18 ДП
User 2895769
4 это перебор, согласен
09:47:49 ДП
User 2895769
причём зачастую эти слова можно сократить без потери смысла
09:48:14 ДП
User 2895769
убрать гласные - один из вариантов, главное, чтобы читалось не хуже
09:49:10 ДП
User 2895769
про ограничение - тут удобнее, когда у каждой команды свои установки
09:49:18 ДП
User 2895769
если все кодят на ноутах - это одно
09:49:25 ДП
User 2895769
если у всех мониторы 40" - другое
09:49:41 ДП
User 2895769
надо, чтобы умещалось как минимум 2 скрипта по ширине монитора
09:49:54 ДП
User 2895769
чтобы мержить было удобно, без горизонтальной прокрутки
09:50:13 ДП
09:50:26 ДП
User 226624052
Слева ноут
09:50:57 ДП
User 2895769
да, ТГ тем же самым страдает
09:51:11 ДП
User 2895769
он зачем-то делает слишком маленькие по ширине сообщения
09:51:26 ДП
User 2895769
у меня гораздо больше область обзора, чем он думает
09:51:37 ДП
User 2895769
боковым зрением я вижу хорошо
09:51:48 ДП
User 226624052
Ну вообще удобно, в центре сообщение, по сути
09:51:51 ДП
User 2895769
ширину строчек я бы сделал побольше
09:51:55 ДП
User 226624052
тут уже играет UX
09:55:46 ДП
User 2895769
если строчки длинные и там много строк, то отступами хорошо показывается всё, каждая следующая строчка имеет всё больший отступ от левого края
09:56:14 ДП
User 2895769
мне эти лесенки удобнее, чем скроллить вниз
09:57:28 ДП
User 2895769
а когда ширина маленькая - то приходится переносить даже в случае, когда логический перенос тут и не нужен вовсе
10:03:06 ДП
User 224473640
как правильно в поле django.db.models.fields.DateTimeField засунуть datetime.datetime?
10:07:32 ДП
User 211270198
User 2895769
убрать гласные - один из вариантов, главное, чтобы читалось не хуже
За убрать гласные иногда хочется ударить
10:07:49 ДП
User 211270198
А потом делаешь поиск по проекту и не понимаешь почему ничего не находится, хотя должно
10:08:15 ДП
User 211270198
И ладно когда оно во всем проекте сокращено
10:08:26 ДП
User 211270198
Так бывает в одном месте сокращено, в другом нет
10:08:28 ДП
User 2895769
есть договоренности
10:08:49 ДП
User 2895769
что название такой-то сущности нужно сокращать вот так-то
10:09:28 ДП
User 2895769
и у тебя не будет желания искать по полному названию если ты знаешь, что такая договоренность есть
10:09:50 ДП
User 211270198
Согласен
10:09:53 ДП
User 2895769
это должно быть задокументировано и доступно всем членам команды
10:12:58 ДП
User 226624052
User 2895769
это должно быть задокументировано и доступно всем членам команды
☕️☕️
10:18:13 ДП
User 82569033
User 100243492
да и неплохо бы туда передать реквест, а то будет безхозно висеть
как только я добавляю скобки, джанго просит 2 аргумента, request и name_board
10:20:00 ДП
User 82569033
Заработало вроде... поменял имя функции
10:20:49 ДП
User 82569033
сохраню на будущие
10:24:09 ДП
User 2895769
лучше на английском имена функций и переменных делать)
10:25:58 ДП
User 2895769
def fuck_that_shit():
10:26:15 ДП
User 2895769
и оно короче получается (название)
10:29:20 ДП
User 82569033
Гайс, форма у меня появилась, теперь надо её как-то грамотно сверстать.Мне нужно чтобы каждое поле выводилось под предыдущим, это через for решится?
10:42:19 ДП
User 2895769
для форм, кстати, есть неплохая либа https://github.com/gregmuellegger/django-floppyforms
github.com/gregmuellegger/django-floppyforms
django-floppyforms - Full control of form rendering in the templates.
10:42:35 ДП
User 2895769
немного расширяет возможности дефолтных форм
10:46:50 ДП
User 82569033
div class="kupi-passcode-suka", хорошо на дваче верстают
11:05:40 ДП
User 226624052
Вообще меня помню ментор по рукам бил за мат в переменных
11:05:43 ДП
User 226624052
Отучился, да
11:09:37 ДП
User 82569033
User 82569033
Гайс, форма у меня появилась, теперь надо её как-то грамотно сверстать.Мне нужно чтобы каждое поле выводилось под предыдущим, это через for решится?
закину еще разок. Я могу перебирать поля только через for или при передачи целой формы, я могу отдельно указать где какие поля вывести?
11:32:55 ДП
User 18500084
User 2895769
для форм, кстати, есть неплохая либа https://github.com/gregmuellegger/django-floppyforms
github.com/gregmuellegger/django-floppyforms
django-floppyforms - Full control of form rendering in the templates.
django-crispy-forms туда же (больше звезд на гитхабе)
11:42:31 ДП
User 2895769
у crispy на мой взгляд хуже с юзабилити, но это дело вкуса, наверное
11:43:06 ДП
User 2895769
я не хочу через питон конфигурировать html
11:43:10 ДП
User 2895769
мне это не нравится
11:44:22 ДП
User 100243492
User 2895769
я не хочу через питон конфигурировать html
передавай привет рельсовикам, те что угодно делают)
11:45:09 ДП
User 2895769
вот там как раз этих хелперов больше было , кажется
11:45:14 ДП
User 2895769
раньше по крайней мере
11:45:57 ДП
User 2895769
когда я вставляю поле в форму, мне нужно иметь возможность подправить вообще всё
11:46:24 ДП
User 2895769
я хочу иметь возможность контроллировать весь html на 100%
11:47:15 ДП
User 2895769
то есть легко влезть в какой-нибудь шаблон и определить, как тот или иной элемент формы будет выглядеть в html
12:24:27 ПП
User 82569033
Гайс, еще вопрос насчет формы. Я сделал форму с загрузкой файла, если я не гружу файл, то форма все равно требует этого. Как это фиксить?
12:27:26 ПП
User 218876148
Хотелось бы подискутировать на отвлеченные темы
12:27:47 ПП
User 218876148
три ляма посетителей в месяц для джанги это много или мало?
12:30:20 ПП
User 2895769
надо измерять в часы пик
12:30:57 ПП
User 2895769
и тут важны запросы, а не уникалы
12:31:15 ПП
User 218876148
Три ляма запросов, не уников, будем считать
12:31:45 ПП
User 218876148
С измерением в часы пик понятно
12:31:51 ПП
User 2895769
ну, инстаграм справляется)
12:32:31 ПП
User 2895769
Django с оптимизациями любое количество выдержит) добавляем серверов и всё)
12:32:35 ПП
User 100243492
Нью Йорк Таймз тоже справляется
12:33:32 ПП
User 218876148
Ну скажем так, у меня джанга отстреливается на 40 запросах в секунду, и это дает мне 103 миллиона хитов. Но это при стабильном потоке трафика, а он таким ясен пень не будет
12:33:55 ПП
User 100243492
и нэшинал географикс
12:34:03 ПП
User 218876148
Вот я и ломаю голову, как мне прикинуть пиковое значение
12:34:40 ПП
User 82569033
Гайс я слишком глупые вопросы задаю и мне идти гуглить до упора или я хуево их формулирую?
12:34:52 ПП
User 218876148
мб кто-то сталкивался с рассчетом нагрузки, хотя бы на глаз
12:35:13 ПП
User 218876148
А то не хочется опытным путем необходимый request per second высчитывать
12:35:16 ПП
User 100243492
User 82569033
Гайс, еще вопрос насчет формы. Я сделал форму с загрузкой файла, если я не гружу файл, то форма все равно требует этого. Как это фиксить?
requiered=False в форму с файлом подсунь
12:36:18 ПП
User 2895769
User 82569033
Гайс я слишком глупые вопросы задаю и мне идти гуглить до упора или я хуево их формулирую?
я не совсем программист) я не помню деталей, а так подсказал бы) я пишу раз в 2 недели что-то на питоне или реже)
12:37:17 ПП
User 2895769
так что я просто поболтать про жизнь тут))
12:37:20 ПП
User 82569033
User 100243492
requiered=False в форму с файлом подсунь
предварительно мне нужно отказаться от form.is_valid() и проверять отдельно поля?
12:38:01 ПП
User 2895769
если поставишь required=False то и без файла она должна быть валидной же
12:38:52 ПП
User 2895769
User 218876148
Вот я и ломаю голову, как мне прикинуть пиковое значение
это зависит от железа
12:38:58 ПП
User 2895769
нет пикового значения
12:39:06 ПП
User 100243492
User 2895769
если поставишь required=False то и без файла она должна быть валидной же
Верно, она в хэтэмэлэ не выставляет флаг <input type="file" requiered> и тем самым, ты можешь провалидировать форму без файла
12:39:06 ПП
User 82569033
User 2895769
если поставишь required=False то и без файла она должна быть валидной же
Тогда в этой проверке никакого смысла нет
12:39:55 ПП
User 100243492
ну если у тебя форма циклится на получении файла, то проверяй, есть ли там файл, ележи нету, слать все в /dev/null
12:40:50 ПП
User 2895769
я не понял вопрос про проверку.. задача ведь была отключить проверку если файл пустой?
12:40:57 ПП
User 2895769
там и другие поля могут быть
12:41:16 ПП
User 2895769
если вообще убрать проверку - он не будет другие поля проверять
12:41:34 ПП
User 82569033
form.is_valid() проверяет же все поля
12:41:40 ПП
12:42:05 ПП
User 82569033
мне нужно отказаться от этой штуки и самому отдельно проверять поля?
12:42:16 ПП
User 2895769
не, зачем?
12:42:18 ПП
User 82569033
ведь при проверке формы с файлом
12:42:33 ПП
User 82569033
я хочу запихнуть required=False
12:42:52 ПП
User 2895769
значит, будет проверка всей формы, но требовать наличие файла в одном из полей этой формы он не будет
12:43:04 ПП
User 82569033
пробую
12:43:35 ПП
User 18500084
User 218876148
три ляма посетителей в месяц для джанги это много или мало?
спроси это у фейсбука :)
джанга не является бутылочным горлышком обычно
12:43:45 ПП
User 18500084
вопросы в правильном кешировании и оптимизации бд
12:44:05 ПП
User 82569033
Все равно просит грузить
12:44:12 ПП
User 2895769
ставим uwsgi в контейнер, делаем кеш через другой и масштабируем через Kubernetes на 1000 серверов 😊
12:44:28 ПП
User 218876148
Хе-хе (:
12:44:48 ПП
User 218876148
User 18500084
вопросы в правильном кешировании и оптимизации бд
Ну в принципе да
12:45:36 ПП
User 2895769
а если совсем по-умному, то эти серверы разворачиваем по запросу через API
12:45:43 ПП
User 2895769
то есть арендуем с почасовой ставкой
12:45:58 ПП
User 2895769
когда не нужно, их нет
12:45:58 ПП
User 82569033
ругается, что required не юзается в is_valid()
12:46:00 ПП
User 2895769
когда нужно - их много
12:47:09 ПП
User 2895769
required ставится в свойствах поля формы
12:47:15 ПП
User 2895769
не внутри is_valid()
12:47:34 ПП
User 100243492
User 82569033
ругается, что required не юзается в is_valid()
я говорю, именно про поле file = forms.FileField( required=False )
12:47:48 ПП
User 100243492
в этом случае, именно файл будет не обязательным полем
12:47:57 ПП
User 100243492
и вся форма нормально пройдет валидацию
12:50:40 ПП
User 82569033
у меня форма наследуется от ModelForm, а не forms т.е. поля я перечисляю через fields)
12:52:17 ПП
User 100243492
покажи форму, что бы я не был экстрасенсом
12:52:35 ПП
User 82569033
class CreateTread(ModelForm):
    class Meta():
        model = Thread
        fields = ['thread_tittle','thread_text','thread_image']
12:55:39 ПП
User 100243492
отлично

class CreateTread(forms.ModelForm):

    thread_image = forms.ImageField(required=False)
    class Meta():
        model = Thread
        fields = ['thread_tittle','thread_text','thread_image']
12:55:44 ПП
User 100243492
к такому виду приведу
12:58:14 ПП
User 82569033
Работает, спасибо
12:58:30 ПП
User 100243492
пожалуйста
01:03:53 ПП
User 82569033
Гайс, если я хочу во вьюхе изменять значение в бд, то нужно создать метод класса и вызывать его?
01:04:38 ПП
User 100243492
однако...
01:04:43 ПП
User 82569033
Board.objects.get(board_shortcut=name_board).board_posts += 1
Вот такая штука не прокатывает
01:04:52 ПП
User 100243492
можешь курсором вызывать чистый sql
01:05:56 ПП
User 100243492
board = Board.objects.get(board_shortcut=name_board)
board.board_posts += 1
board.save()
01:06:21 ПП
User 100243492
либо через get_object_or_404
01:06:59 ПП
User 18500084
User 100243492
можешь курсором вызывать чистый sql
ужс какой, зачем?
01:07:13 ПП
User 100243492
User 18500084
ужс какой, зачем?
^_^ можно жЫ
01:07:25 ПП
User 18500084
можно и в окно сразу выпрыгнуть
01:14:15 ПП
User 82569033
User 100243492
board = Board.objects.get(board_shortcut=name_board)
board.board_posts += 1
board.save()
чет меня поплавило, спасибо. Я надеюсь помучать вопросами этот чатик,  пока не допилю первый сайт
02:50:47 ПП
User 82569033
Если я кладу в DateTimeField, время без милисекунд. Это чревато последствиями? 
 RuntimeWarning: DateTimeField Thread.thread_time received a naive datetime (2016-11-16 17:46:14) while time zone support is active.
  RuntimeWarning)
Вот что пайчарм выплевывает мне
03:25:59 ПП
User 239800743
используй таймзоны =)
05:58:21 ПП
User 223620233
User 18500084
можно и в окно сразу выпрыгнуть
отличное решение, сегодня попробую
05:59:27 ПП
User 226624052
best practice
06:06:22 ПП
User 100243492
User 223620233
отличное решение, сегодня попробую
Но-но я же... Просто сказануть хотел;(
07:57:44 ПП
User 158455295
User 82569033
class CreateTread(ModelForm):
    class Meta():
        model = Thread
        fields = ['thread_tittle','thread_text','thread_image']
Да того чтобы не переопределять поле в форме можешь в поле самой модели указать null=True и blank=True. Эффект будет тот же но кода меньше
10:37:51 ПП
User 89007285
Есть кто?
10:39:24 ПП
10:42:45 ПП