@pydjango
Django

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

1741 members

Архив канала @pydjango 21 февраля 2017 г.

12:46:14 ДП
User 191376311
Всем хай
12:47:07 ДП
User 191376311
Дайте какой-нить репозиторий на гитхабе где красиво написаны тесты, желательно с комментариями
12:48:42 ДП
User 191376311
Я хочу сесть и написать пару тестов для проекта, лезу в доки, вижу много текста и мало кода и идея писать тесты отпадает
05:40:15 ДП
User 169404603
User 191376311
Я хочу сесть и написать пару тестов для проекта, лезу в доки, вижу много текста и мало кода и идея писать тесты отпадает
а там без текста нет понимания
05:40:49 ДП
User 169404603
открою страшный секрет, чтобы протестить кусок кода, часто приходится написать ещё больше кода
06:39:30 ДП
User 1874846
а что используете?
06:41:16 ДП
User 1874846
код в студию)
06:45:15 ДП
User 1874846
img = Image.open(sku.image.path)
np = os.path.join(settings.BASE_DIR, 'output', os.path.basename(sku.image.path)[:3] + '.png')
img.save(np)
эти строчки что делают?
06:46:12 ДП
User 1874846
This method can be used to insert a image into a worksheet. The image can be in PNG, JPEG or BMP format:
06:47:50 ДП
User 1874846
не понимаю, почему вы требуете от кода магии..
попробуйте фотку jpg руками переименовать в png и открыть
06:48:53 ДП
User 1874846
User 1874846
img = Image.open(sku.image.path)
np = os.path.join(settings.BASE_DIR, 'output', os.path.basename(sku.image.path)[:3] + '.png')
img.save(np)
эти строчки что делают?
ведь этим кодом вы так и делаете, верно?
06:49:59 ДП
User 1874846
даже если у него такая возможность, вы просто переименовываете)
07:01:11 ДП
User 1874846
хм.. возможно и декодирует..
07:08:12 ДП
User 169404603
просто декодер собран без jpg либы
07:10:19 ДП
User 169404603
угу, но ты скорее всего pil собирал сам или через pip, а оно не нашло либу и собралось так
07:10:51 ДП
User 169404603
у нас там уже фрезеры есть, лазеры... если есть подобный девайс, подключайся
07:30:30 ДП
User 44072265
User 169404603
угу, но ты скорее всего pil собирал сам или через pip, а оно не нашло либу и собралось так
чо, чтобы без нужных либ пил собрался?! быть такого не можетО_о
07:36:57 ДП
User 205811567
кстати, есть вопрос, а какого мнения сообщества на использование конды на деве/на проде?
07:37:15 ДП
User 205811567
тот же самый PIL что бы не собирать
07:37:15 ДП
User 169404603
User 44072265
чо, чтобы без нужных либ пил собрался?! быть такого не можетО_о
ваши варианты
07:37:29 ДП
User 169404603
User 205811567
тот же самый PIL что бы не собирать
ставь pillow
07:37:46 ДП
User 205811567
в третьем он и так pillow
07:37:51 ДП
User 169404603
pillow==3.2.0
07:38:14 ДП
User 169404603
правда сайтик год уже пишу, может и устарел
07:38:20 ДП
User 205811567
я не о нейменге спрашиваю
07:38:26 ДП
User 205811567
и не о конкретной либе
07:38:36 ДП
User 205811567
а насчет использования конды
07:40:05 ДП
User 169404603
что за когда, я видимо пропустил
07:40:16 ДП
07:40:28 ДП
User 205811567
будь то anaconda или miniconda
07:41:33 ДП
User 205811567
по сути альтернативные репы для питона, который распространяется с уже скомпилированными либами
07:45:14 ДП
User 169404603
хм хм, я бы не стал это трогать, но требования бывают разные, понимаю
07:48:23 ДП
User 205811567
у меня был проект на третьем питоне, и мне там нужен был OpenCV 3
07:48:34 ДП
User 205811567
там использовал вовсю
07:48:48 ДП
User 205811567
иначе получалась - ДИЧ
07:49:21 ДП
User 205811567
официальных сборо OpenCV3 под py3 вобще не было
07:49:42 ДП
User 205811567
неофициальные были только под py2
07:50:21 ДП
User 205811567
был вариант скомпилить, но убился об DH некоторых либ к py2
07:50:48 ДП
User 205811567
а через конду поставилось сразу
07:51:02 ДП
User 169404603
надо будет иметь в виду
07:51:06 ДП
User 205811567
это кому нибудь на будущее
08:05:11 ДП
User 107485588
Я вчера как раз ставил опен сиви на тройку
08:05:27 ДП
User 107485588
Около часа заняло
08:05:59 ДП
User 205811567
какую версию?
08:06:21 ДП
08:06:40 ДП
User 107485588
С кондой верняк проще)
08:20:01 ДП
User 1874846
подскажите, related_name и related_query_name создают какие-нибудь записи в базе?
08:26:52 ДП
User 44072265
User 1874846
подскажите, related_name и related_query_name создают какие-нибудь записи в базе?
а откуда вообще такой вопрос возник?
09:21:40 ДП
User 194990550
Как без боли перейти с ForeingKey на ManyToMany?
09:26:37 ДП
User 169404603
через миграции
09:27:17 ДП
User 169404603
включаешь мозг и делаешь поэтапно, примерно в десяток миграций уложишься
09:33:58 ДП
User 239800743
че десяток? поле поменять 3-4 миграции максимум
09:34:15 ДП
User 169404603
ну, можно вообще в одной всё сделать, когда руку набьёшь
09:38:13 ДП
User 226624052
Когда хочется самому
09:38:39 ДП
User 226624052
Гайс, такая проблема:
open("./python3_plugin.so"): No such file or directory [core/utils.c line 3684]
!!! UNABLE to load uWSGI plugin: ./python3_plugin.so: cannot open shared object file: No such file or directory !!!
09:43:30 ДП
User 226624052
[uwsgi]
plugins = python3
uid = developer
gid = developers
project = melonaid
base = /home/%(uid)
chdir= %(base)/%(project)
virtualenv = %(base)/.vitrualenvs/%(project)_env/
module=mysite.wsgi:application
master=True
pidfile=/tmp/%(project).pid
vacuum=True
max-requests=5000
processes = 5
daemonize=%(base)/%(project)/logs/uwsgi-%(project).log
socket = /run/uwsgi/%(project).sock
chown-socket = %(uid):%(gid)
chmod-socket = 660
10:04:26 ДП
User 135467237
Послучаю из html формы два параметра
name = request.POST.get('name', '')
    year = request.POST.get('year', '')

Форма является поиском по статьям(по году и по названию)
    titles_list = Title.objects.filter(title_name__contains=name, title_release_year=year) \
        .defer('title_description')
Как сделать так, чтобы если у меня например параметр name не указан, то и не делать по нему выборку? Только через if?
10:07:02 ДП
User 135467237
типо вот такого
10:07:05 ДП
User 48374918
User 135467237
Послучаю из html формы два параметра
name = request.POST.get('name', '')
    year = request.POST.get('year', '')

Форма является поиском по статьям(по году и по названию)
    titles_list = Title.objects.filter(title_name__contains=name, title_release_year=year) \
        .defer('title_description')
Как сделать так, чтобы если у меня например параметр name не указан, то и не делать по нему выборку? Только через if?
через if как?
10:07:16 ДП
User 205811567
через **kwargs
10:08:09 ДП
User 48374918
через kwargs так же надо указывать через условия
10:08:11 ДП
User 205811567
if name:
    data.update({'name': name})
titles_list = Title.objects.filter(**kwargs=data)
10:08:41 ДП
User 205811567
получение лучше поменять на
10:08:47 ДП
User 205811567
name = request.POST.get('name', None)
10:09:53 ДП
User 135467237
спасибо
10:18:43 ДП
User 24147647
User 226624052
Гайс, такая проблема:
open("./python3_plugin.so"): No such file or directory [core/utils.c line 3684]
!!! UNABLE to load uWSGI plugin: ./python3_plugin.so: cannot open shared object file: No such file or directory !!!
поставь uwsgi-plugin-python3
10:19:07 ДП
User 226624052
Поставил же
10:20:00 ДП
User 24147647
а какая версия uwsgi? там была какая-то сломанная
10:20:58 ДП
10:21:07 ДП
User 226624052
Не думаю, что проблема в библиотеке
10:21:17 ДП
User 226624052
Проблема во мне :D
10:24:33 ДП
User 24147647
попробуй указать plugins-dir в котором лежит либа
10:25:01 ДП
User 226624052
Указал, не помогло
10:26:34 ДП
User 194990550
Попробуй через sudo запускать:)
10:27:11 ДП
User 226624052
Запускал и из-под рута
10:27:14 ДП
10:27:32 ДП
User 226624052
            run('uwsgi --http :8000 --home /home/developer/melonaid --chdir /home/developer/melonaid --venv /home/developer/.virtualenvs/melonaid_env/ -w mysite.wsgi')
10:27:38 ДП
User 226624052
Зато вот это работает
10:27:55 ДП
User 226624052
Ладно, я сваливаю, буду курить маны ювзги доки
10:28:48 ДП
User 194990550
[uwsgi]
uid=ubuntu
gid=ubuntu
chdir=/var/www/switchidea
home=/home/ubuntu/.virtualenvs/switchidea
wsgi-file=%(chdir)/switchidea/wsgi.py
module=wsgi:application
socket=/tmp/switchidea.sock
pidfile=/tmp/switchidea.pid
logto=/var/log/uwsgi/switchidea.log
vacuum=True
master=True
max-requests=5000
workers=3
chmod-socket=666

у меня сейчас в проекте вот такой конфиг. Правда его еще сделали до меня, но он рабочий
10:29:36 ДП
User 226624052
Сяп, забрал, попробую, отпишу
10:32:20 ДП
User 24147647
User 194990550
[uwsgi]
uid=ubuntu
gid=ubuntu
chdir=/var/www/switchidea
home=/home/ubuntu/.virtualenvs/switchidea
wsgi-file=%(chdir)/switchidea/wsgi.py
module=wsgi:application
socket=/tmp/switchidea.sock
pidfile=/tmp/switchidea.pid
logto=/var/log/uwsgi/switchidea.log
vacuum=True
master=True
max-requests=5000
workers=3
chmod-socket=666

у меня сейчас в проекте вот такой конфиг. Правда его еще сделали до меня, но он рабочий
это вроде для второго питона
10:32:35 ДП
User 194990550
да, возможно. Старый конфиг.
10:33:14 ДП
User 24147647
[uwsgi]
plugins = python3
home = /home/gitlab-runner/bin/project/
chdir = /var/www/project/
virtualenv = /home/gitlab-runner/bin/project/
env = DJANGO_SETTINGS_MODULE=project.settings
module = project.wsgi:application
touch-reload = %(chdir)/touch_to_reload
master = true
processes = 10
socket = /run/uwsgi/app/project/socket
chmod = 666
vacuum = true

у нас такой
10:33:21 ДП
User 194990550
Не думаю, что они будут прям уж сильно отличаться.
10:34:01 ДП
User 226624052
Ну вот, у вас уже началась путаница
10:34:35 ДП
User 226624052
Проект в виртуалке, какой профит?
10:34:58 ДП
User 24147647
он не мешает паре других
11:08:31 ДП
User 226624052
Заработало, но не с вашими конфигами, ДО раскрутил
11:08:41 ДП
User 226624052
Хз, ебень какая-то, всё равно
11:09:00 ДП
User 226624052
Ладно, я тут фабрику под себя пишу
11:20:45 ДП
User 18500084
@iBiZoNiX здоров)
11:21:09 ДП
User 180915648
@amureki даров)
11:34:44 ДП
11:36:03 ДП
User 135467237
я так понял, чтобы залить на git dajngo проект, который стоит на virtualenv, достаточно requirements.txt сделать?
11:37:55 ДП
User 180915648
User 135467237
я так понял, чтобы залить на git dajngo проект, который стоит на virtualenv, достаточно requirements.txt сделать?
requirements всегда нужен, даже локально
11:38:29 ДП
User 226624052
http://www.fabfile.org/
11:39:11 ДП
User 169404603
че не ансибл?
11:40:49 ДП
User 169404603
т.е. написать кучу кода проще, чем написать несколько конфигов?
11:41:08 ДП
User 169404603
я оба варианта пробовал, ну его нафиг этот фабрик
11:43:00 ДП
User 226624052
https://bitbucket.org/53rb3rn4r/fab_deploy
bitbucket.org/53rb3rn4r/fab_deploy
My deploy repository with fabric
11:43:17 ДП
User 226624052
User 169404603
я оба варианта пробовал, ну его нафиг этот фабрик
Ну, у меня тут каша уже ;D
11:45:59 ДП
User 226624052
И я уже опять заебался
11:46:28 ДП
User 226624052
Вручную сделал: работает, а фабрикой - сосу
12:02:34 ПП
User 194990550
Расскажите как Ansible работает?:) 
Видел конфиги, выглядит круто, а как он при деплое все это делает.
12:03:37 ПП
User 194990550
Его ток при деплое юзают? или типа Docker можно и локально использовать?
12:05:27 ПП
User 299644
Никакой связи с docker
12:05:51 ПП
User 299644
Служит для "оркестрации"
12:06:34 ПП
User 299644
В общем, удобная штука, когда нужно конфигурировать, выполнять типовые задачи и т.п. на куче хостов
12:06:43 ПП
User 299644
Ближе к паппету по смыслу
12:07:49 ПП
User 299644
Можно и локально, например для разворачивания проекта если есть плейбуки
12:12:15 ПП
User 226624052
а чем фабрика тогда не нравится?
12:12:22 ПП
User 226624052
Кстати, всё работает
02:29:17 ПП
User 112010716
User 194990550
Расскажите как Ansible работает?:) 
Видел конфиги, выглядит круто, а как он при деплое все это делает.
Он тупо все через ssh делает
02:29:35 ПП
User 112010716
там несколько адаптеров под разные платформы
02:29:52 ПП
User 112010716
на каждую платформу свой подход
02:30:05 ПП
User 112010716
а команды одинаковые в рамках ansible
02:39:45 ПП
User 260280506
он умно всё по ssh делает
02:51:45 ПП
User 226624052
User 260280506
он умно всё по ssh делает
А фабрикой по ссш делается не умно, чтоле?
02:52:37 ПП
User 260280506
я про это ничего не писал, просто подход правильный
02:53:22 ПП
User 112010716
User 226624052
А фабрикой по ссш делается не умно, чтоле?
Фабрика, насколько мне известно, не имеет такого расширенного списка команд, да и универсализация у нее страдает. Для ansible вы можете выполнять команды хоть на android удаленно, если для него есть адаптер
02:53:41 ПП
User 112010716
и список команд во всех случаях будет одинаковый
02:53:51 ПП
User 112010716
в отличие от фабрики
02:54:03 ПП
02:55:21 ПП
User 112010716
то есть допустим, у вас есть три сервера: на linux, mac os и win. С ансибл у вас будет 1 файл со списком команд. В случае с farbic придется писать на каждую систему свой конфиг
03:00:20 ПП
User 94962112
Привет есть норм курсы по джанго
03:00:26 ПП
User 94962112
Платные
03:01:14 ПП
User 299919424
Привет, есть учебный центр, а вот преподаватель под вопросом)
03:01:23 ПП
User 299919424
@lorddaedra возьми ученика)
03:01:25 ПП
User 112010716
User 94962112
Платные
А сколько платишь? 😜
03:02:08 ПП
User 94962112
А какая.цена
03:02:29 ПП
User 94962112
Смотря какой уровень.у препода
03:25:55 ПП
User 194990550
Нагло:)
03:26:16 ПП
User 226624052
@lorddaedra @weonn У нас спам тут
03:33:33 ПП
User 94962112
Dev Null:
Если опытный ментор

Кто натоскает по джанго

За деньги
03:35:08 ПП
User 169404603
1000 в час
03:35:17 ПП
User 169404603
дважды не повторяю
03:35:46 ПП
User 194990550
На Djbook помню чел был, который публично что-то типа менторил :)
03:50:51 ПП
User 94962112
Дорого
03:55:49 ПП
User 65838284
по апи по посту приходит json такого вида
{
    "survey_id":1,

     "stat":[
        {
           "answer_id":11,
           "question_id":1
        },
        {
           "answer_id":22,
           "question_id":2
        }
     ]
  }
03:56:43 ПП
User 65838284
а моделька такая
class Stats(TimeStampedModel):
    question = models.ForeignKey(Question)
    answer = models.ForeignKey(Answer)
    survey = models.ForeignKey(Survey)
03:56:44 ПП
User 169404603
User 194990550
На Djbook помню чел был, который публично что-то типа менторил :)
самого сайта не хватает?
03:57:19 ПП
User 194990550
не знаю:)
03:57:22 ПП
User 65838284
чет не могу врубится как сериализатор построить в джанго рест для модели Stats
03:58:11 ПП
User 169404603
книгу почитать, доку проглядеть и ты уже почти сеньор :)
03:59:00 ПП
User 194990550
http://www.django-rest-framework.org/api-guide/relations/ ну вот тут же написано как сделать:)
django-rest-framework.org/api-guide/relations
Django, API, REST, Serializer relations
03:59:15 ПП
User 65838284
может типа этого
class ListStatSerializer(serializers.ListSerializer):
    answer_id = fields.IntegerField(required=True)
    question_id = fields.IntegerField(required=True)

class StatsSerializer(serializers.Serializer):
    survey_id = fields.IntegerField(required=True)
    stat = ListStatSerializer(required=True)
03:59:24 ПП
User 194990550
question = serializers.StringRelatedField(many=False)
03:59:47 ПП
User 169404603
это же читать надо
04:03:05 ПП
User 65838284
в моем случае точно нужен RelatedField?
04:04:09 ПП
User 65838284
мне нужно создать запись только в одной таблице
04:04:14 ПП
User 194990550
А что не так то? Что должно возвращать, написано же id вот он их и возвращает
04:27:39 ПП
User 128333406
Что используете для object level permission, DJANGO-GUARDIAN? Кроме этого пакета, есть разные другие, кто-то смотрел их, есть там что-то интересное или они все заброшенные и неинтересные и ничего хорошего из них не почерпнуть?
04:33:57 ПП
User 226624052
User 169404603
книгу почитать, доку проглядеть и ты уже почти сеньор :)
А если инглиш выучить, то ваще
04:45:00 ПП
User 100243492
User 94962112
Смотря какой уровень.у препода
если синьОр?
04:49:18 ПП
User 169404603
User 226624052
А если инглиш выучить, то ваще
то можно сразу к нам, доку переводить
04:50:53 ПП
User 226624052
Уахахах, кстати, да, джбук не полностью переведена, мб и к счастью
05:09:33 ПП
User 128333406
блин не пойму, зачем время на перевод доки тратить, кроме, возможно, прокачки английского для переводчика?
05:11:20 ПП
User 299919424
User 128333406
блин не пойму, зачем время на перевод доки тратить, кроме, возможно, прокачки английского для переводчика?
потому что, многие переводчики - троешники.. Лучше читать официальную документацию. Ну и английский в жизни всегда понадобится
05:12:07 ПП
User 128333406
User 299919424
потому что, многие переводчики - троешники.. Лучше читать официальную документацию. Ну и английский в жизни всегда понадобится
ну так я и написал, что лучше официальную доку.
05:12:39 ПП
User 299919424
User 128333406
ну так я и написал, что лучше официальную доку.
а, неверно понял, сорри)
05:13:22 ПП
User 55346433
User 169404603
книгу почитать, доку проглядеть и ты уже почти сеньор :)
Миддл* (на самом деле хороший Джун)
05:52:03 ПП
User 129325914
переводить доку - долго..и неблагодарно
05:58:55 ПП
User 240629525
Переводишь доку переводишь, а завтра новый релиз вышел. Тем более скоро обещают Django 2.
05:59:05 ПП
06:05:40 ПП
User 149595952
А я наоборот считаю, что ребята молодцы, что перевели доку. Такая себе популяризация Django среди русскогоязычного населения.
06:06:47 ПП
User 149595952
@ruslanpopov Молодцы :)
06:13:05 ПП
User 149595952
А чем плох тот вариант, что есть дока помимо английского еще и на русском?
06:16:21 ПП
User 129325914
шаг влево-шаг вправо от доки - и ты уже в мире английского
06:20:12 ПП
User 240629525
Попробуй себя в программировании 1с)
06:24:29 ПП
User 299919424
а к ключам массива на русском?😀
06:31:52 ПП
User 2895769
User 226624052
@lorddaedra @weonn У нас спам тут
fxd )
06:35:01 ПП
User 2895769
про конфиги uWSGI выше - имеет смысл сейчас всё запускать в контейнерах, так легче тестировать, деплоить, единая среда везде... таким образом, у вас есть образ с питоном и туда можно прямо ставить uWSGI без virtualenv'ов
06:36:12 ПП
User 2895769
вот эти все вопросы относительно того, как правильно деплоить - в 2017 году это правильно делать с помощью контейнеров)
06:39:04 ПП
User 128333406
пишу комменты на русском в приложении, которое в опенсорсе не будет никогда, и там всего 2 разработчика. Не вижу в этом ничего плохого.
06:40:08 ПП
User 128333406
но если есть привычка писать все на англ, и это не тормозит процесс, то думаю можно везде писать на англ. Мне на русском пока быстрее просто и ошибок меньше
06:40:21 ПП
User 2895769
если вы менеджер и делаете некий проект с заранее непонятными перспективами, имеет смысл сделать правило всё писать по-английски, это связано с тем, что потом проект могут допиливать индусы
06:41:42 ПП
User 128333406
у нас 100% вероятность, что писать его будем мы всегда, либо другие русскоговорящие люди и он очень узкоспециализированный, поэтому и не вижу ничего плохого в комментах на русском
06:42:52 ПП
User 128333406
но это конечно от кейса зависит
09:51:03 ПП
User 169404603
User 129325914
переводить доку - долго..и неблагодарно
вот это факт, но в процессе перевода было много интересного отработано