@pydjango
Django

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

1741 members

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

02:27:31 ДП
User 158695346
User 44072265
в общем если тут есть опытные дяди, то пусть они меня оценят и скажут)
phone_regex = RegexValidator(regex=r'^[\d\(\)\- ]{7,15}$',
                             message=_("Номер должен быть следующего формата: '+99999999'. Не больше 15 цифр"))
или regex, или message пиздит.
04:56:37 ДП
User 1874846
User 21118953
Есть модель author, есть модель comment с foreignKey на автора. Как мне сделать в api возможность получать все кники по id автора? (Что-то типа: /api/books/author/1 )

Сейчас я во views.py пишу:
class CommentsViewSet(viewsets.ModelViewSet):
    queryset = Comment.objects.all()
    serializer_class = CommentSerializer

А в url.py у меня:
from rest_framework import routers
router = routers.DefaultRouter()
router.register(r'comments', views.CommentViewSet)
Если я правильно понял, надо посмотреть в сторону фильтров, дока понятная
04:58:25 ДП
User 1874846
User 21118953
Есть модель author, есть модель comment с foreignKey на автора. Как мне сделать в api возможность получать все кники по id автора? (Что-то типа: /api/books/author/1 )

Сейчас я во views.py пишу:
class CommentsViewSet(viewsets.ModelViewSet):
    queryset = Comment.objects.all()
    serializer_class = CommentSerializer

А в url.py у меня:
from rest_framework import routers
router = routers.DefaultRouter()
router.register(r'comments', views.CommentViewSet)
http://www.django-rest-framework.org/api-guide/filtering/
django-rest-framework.org/api-guide/filtering
Django, API, REST, Filtering
06:11:05 ДП
User 94962112
всем привет
06:11:12 ДП
User 94962112
есть аналог ispmanager
06:11:21 ДП
User 94962112
для pyhon django
06:11:42 ДП
User 567937
чуваки
06:11:53 ДП
User 567937
@zagrebelin спишь?
06:12:11 ДП
User 94962112
python 3 versiya
06:16:25 ДП
User 158695346
User 567937
@zagrebelin спишь?
иногда сплю.
06:16:38 ДП
User 567937
полезное дело
06:16:42 ДП
User 567937
подскажи, пожалуйста
06:17:02 ДП
User 567937
есть модель, хочу написать миксин с кастомным clean()
06:17:14 ДП
User 567937
как по гуд практис делают?
06:18:11 ДП
User 567937
class Foo(models.Model, BarMixin)
06:18:35 ДП
User 567937
в BarMixin указываю в Мета, что мол, абстракт = Тру
06:19:43 ДП
User 567937
Но при вызове clean() метод видит свой Meta (где абстракт тру) а не Meta наследника
06:23:23 ДП
User 158695346
User 567937
Но при вызове clean() метод видит свой Meta (где абстракт тру) а не Meta наследника
попробуй переставить местами, Foo(BarMixin, models.Model)
06:33:52 ДП
User 44072265
User 567937
class Foo(models.Model, BarMixin)
и про mro  в питоне 3 не забудь прочитать
06:39:21 ДП
User 94962112
Dev Null, [17 февр. 2017 г., 12:11]: 
всем привет

есть аналог ispmanager

для pyhon d
06:41:01 ДП
User 48374918
User 94962112
Dev Null, [17 февр. 2017 г., 12:11]: 
всем привет

есть аналог ispmanager

для pyhon d
там вся проблема что помимо интерфейса 
нужны еще агенты на самих серверах 
те это комплекс программ и django в нем играет не самую главную роль
06:47:00 ДП
User 94962112
Ajenti V  поддерживает ли python3?
06:48:21 ДП
User 1874846
User 94962112
Ajenti V  поддерживает ли python3?
https://www.google.com/webhp?sourceid=chrome-instant&ion=1&espv=2&ie=UTF-8#q=Ajenti+V+support+python+3
06:50:07 ДП
User 48374918
User 94962112
Ajenti V  поддерживает ли python3?
Backend
Language:  Python 2.7/3.4
Framework:  GEvent
Extensibility:  Pluggable, modular architecture
06:50:19 ДП
06:50:23 ДП
User 94962112
ок с богом
06:50:31 ДП
User 94962112
буду ставить ее
06:50:38 ДП
User 94962112
и шаманить
06:59:34 ДП
User 48374918
User 94962112
и шаманить
для своих проектов или новый хостинг открывается ? если не секрет =)
07:21:12 ДП
User 103952421
Кто знает, как сказать для докера какой питон использовать для Джанго?
07:22:20 ДП
User 129325914
User 103952421
Кто знает, как сказать для докера какой питон использовать для Джанго?
А как стартует проект?
07:22:36 ДП
User 103952421
User 129325914
А как стартует проект?
В плане?
07:22:49 ДП
User 129325914
Ну, в докере как именно запускаешь
07:22:57 ДП
User 103952421
Вообще использую paas
07:22:59 ДП
07:23:08 ДП
User 194990550
FROM python:3.5
07:23:32 ДП
User 129325914
Докерфайл покажи
07:23:32 ДП
User 103952421
Закрываю requirements и procfile(gunicorn)
07:23:55 ДП
User 103952421
User 129325914
Докерфайл покажи
Где бы найти еще)
07:24:08 ДП
User 103952421
User 194990550
FROM python:3.5
Это куда писать?
07:24:20 ДП
User 103952421
User 129325914
Докерфайл покажи
Погуглю..
07:24:45 ДП
User 194990550
В самое начало докер файла
07:25:24 ДП
User 103952421
А если dokku на сервере, он же сможет с 2 приложениями работать на 2.7 и 3.х
07:25:30 ДП
07:26:49 ДП
User 129325914
dokku на своем сервере?
07:27:19 ДП
User 103952421
На digital ocean
07:27:28 ДП
User 129325914
да сможет тогда
07:27:32 ДП
07:27:47 ДП
User 129325914
у тебя есть какой-то билдпак на твоих приложениях подключенный?
07:27:49 ДП
User 103952421
Спасибо
07:28:06 ДП
User 103952421
User 129325914
у тебя есть какой-то билдпак на твоих приложениях подключенный?
Что это?)
07:28:34 ДП
User 129325914
ну там при запуске приложения либо dockerfile используют, либо билдпак
если ничего нет - он сам определяет нужный билдпак
07:29:07 ДП
User 129325914
можно runtime.txt сделать, куда написать версию питона, кстати
07:29:40 ДП
User 129325914
python-3.6.0 в него, к примеру, написать
07:29:55 ДП
User 103952421
Попробую
07:30:06 ДП
User 103952421
Спасибо
08:05:01 ДП
User 174796016
User 194990550
https://rutracker.org/forum/viewtopic.php?t=5305276 вот крч недавно нашел:) думаю интересно и полезно будет, сам еще не смотрел.
но просто выше кто-то спрашивал про JS для Django :)
rutracker.org/forum/viewtopic.php?t=5305276
[Udemy] Django + AngularJS for a Powerful Web Application [2016, ENG] » Программирование (видеоуроки) » Скачать торрент :: RuTracker.org
спасибо
08:38:42 ДП
User 120247205
User 21118953
Есть модель author, есть модель comment с foreignKey на автора. Как мне сделать в api возможность получать все кники по id автора? (Что-то типа: /api/books/author/1 )

Сейчас я во views.py пишу:
class CommentsViewSet(viewsets.ModelViewSet):
    queryset = Comment.objects.all()
    serializer_class = CommentSerializer

А в url.py у меня:
from rest_framework import routers
router = routers.DefaultRouter()
router.register(r'comments', views.CommentViewSet)
В drf проще делать /api/books?author=1, чем возиться с вложенностью.
08:43:24 ДП
User 120247205
И обычно потом появляется необходимость по нескольким параметрам фильтровать. /api/books? author=1&genre=2
09:39:16 ДП
User 222541045
У whatsapp вообще нету API насколько мне известно
09:41:26 ДП
User 222541045
Ты что вообще писать хочешь?
09:44:46 ДП
User 222541045
Ну разве что дергать из альтернативных клиентов код
09:47:27 ДП
User 222541045
Удачи
09:49:32 ДП
User 222541045
Скажи если что-то найдешь
09:57:48 ДП
User 205811567
whats up построен поверх signal
09:58:00 ДП
User 205811567
у сигнала исходники открытые
09:58:17 ДП
User 205811567
лежат на гитхабе
09:58:37 ДП
User 205811567
из апи там - только запрос на обмен ключами
09:59:09 ДП
User 205811567
можно попробовать поднять консольный клиент, который будет получать ключики и общаться с пользователем
09:59:20 ДП
User 205811567
в виде бота
10:01:57 ДП
User 222541045
User 205811567
whats up построен поверх signal
Нет
10:02:14 ДП
User 222541045
Протокол шифрования для приватных чатов только одинаковый
10:03:50 ДП
User 205811567
signal-протокол и имел ввиду
10:04:53 ДП
User 205811567
the Signal Protocol has been implemented into WhatsApp, Facebook Messenger, and Google Allo
12:04:11 ПП
User 94962112
привет
12:04:12 ПП
User 94962112
ajenti-v-python-gunicorn (Python WSGI support via gunicorn)
12:04:19 ПП
User 94962112
в адженти как подключить
12:04:23 ПП
User 94962112
не понимаю
03:56:34 ПП
User 1874846
добрый вечер
03:57:42 ПП
User 1874846
я хочу добавить кнопку в админку, именно на главную страницу админки, где перечень приложений. подскажите, куда копать?
03:58:48 ПП
User 18500084
Google: django override admin page
03:58:55 ПП
User 1874846
ДОБРО ПОЖАЛОВАТЬ, ADMI. ОТКРЫТЬ САЙТ / ИЗМЕНИТЬ ПАРОЛЬ / ВЫЙТИ
03:59:04 ПП
User 18500084
Где-то в эту сторону :)
03:59:27 ПП
User 1874846
там в основном пишут про действия администратора
03:59:36 ПП
User 129325914
можно даже в сорсах просто поискать этот текст
03:59:39 ПП
User 1874846
я даж не понимаю как правильно загуглить)
03:59:53 ПП
User 18500084
И есть еще django admin tools
03:59:59 ПП
User 18500084
Или как он там
04:00:15 ПП
User 18500084
User 1874846
там в основном пишут про действия администратора
Тебе просто переписать стандартный шаблон надо
04:00:18 ПП
User 194990550
https://docs.djangoproject.com/en/1.10/ref/contrib/admin/#overriding-admin-templates
04:00:31 ПП
User 18500084
User 18500084
Google: django override admin page
override admin template
04:01:27 ПП
User 1874846
спасибо)
05:40:09 ПП
User 103952421
User 129325914
можно runtime.txt сделать, куда написать версию питона, кстати
спасибо, все получилось
05:40:43 ПП
User 103952421
теперь статику не грузит :)
05:46:06 ПП
User 103952421
Подскажите плз, как правильно отдать static/css/main.css
05:46:23 ПП
User 103952421
В urls прописать?
05:46:58 ПП
User 158695346
User 103952421
В urls прописать?
когда ты запрашиваешь урл (/static/1.txt), который уходит в static files, то джанга отрезает от него ту часть, которая в настройках указана как STATIC_URL. То, что останется, ищется вначале в путях, которые прописаны в STATICFILES_DIRS, потом оно перебирает все приложения, заходит там в папку static и ищет вот тот остаточек там.
05:47:00 ПП
User 129325914
нет
STATIC_ROOT 
STATIC_URL
посмотри
05:47:21 ПП
User 158695346
User 158695346
когда ты запрашиваешь урл (/static/1.txt), который уходит в static files, то джанга отрезает от него ту часть, которая в настройках указана как STATIC_URL. То, что останется, ищется вначале в путях, которые прописаны в STATICFILES_DIRS, потом оно перебирает все приложения, заходит там в папку static и ищет вот тот остаточек там.
я сейчас про разработку говорю. В случае продакшена там всё проще - ./manage.py collectstatic проходит по всем местам, которые я указал выше, собирает там вообще все файлы, и сваливает их в STATIC_ROOT.
05:48:21 ПП
User 129325914
кстати, а staticfiles_finder ему не надо прописать?
я просто не помню, как он по дефолту =)
05:48:44 ПП
User 240629525
STATICFILES_FINDERS должен app уметь, а там в url влючишь static
05:48:45 ПП
User 24147647
и в продакшене джанга уже не отвечает за выдачу статик файлов, это перекладывается на веб-сервер
05:48:51 ПП
User 103952421
STATIC_URL = '/static/'
STATIC_ROOT = os.path.join(BASE_DIR, 'static')
05:48:57 ПП
User 103952421
локально все работает
05:48:57 ПП
User 240629525
STATICFILES_FINDERS = (
    'django.contrib.staticfiles.finders.FileSystemFinder',
    'django.contrib.staticfiles.finders.AppDirectoriesFinder',
)
05:49:03 ПП
User 103952421
в продакшене на dokku нет
05:50:01 ПП
User 24147647
User 103952421
в продакшене на dokku нет
какой веб-сервер там?
05:50:14 ПП
05:50:45 ПП
User 129325914
наверни еще nginx поверх него! =)
05:50:56 ПП
User 240629525
User 24147647
и в продакшене джанга уже не отвечает за выдачу статик файлов, это перекладывается на веб-сервер
вообщем-то умеет, но чтобы не дергать джангу, отдают вебсервером
05:51:39 ПП
User 129325914
собственно, даже на сайте gunicorn'a просят nginx использовать
05:51:49 ПП
User 103952421
как лучше сделать?)
05:52:14 ПП
User 240629525
nginx вот как лучше
05:52:21 ПП
User 240629525
как и сказали люди выше
05:52:46 ПП
User 129325914
http://gunicorn.org/index.html#deployment
вот главная страничка gunicorn, тут они и советуют =)
05:52:55 ПП
User 129325914
собственно, тут статики еще нет
05:53:01 ПП
User 129325914
надо ее довесить еще одним location
05:53:31 ПП
User 103952421
в прошлый раз решал вот так, но это костыльно как-то?
05:53:32 ПП
User 103952421
#product setting
STATIC_ROOT = os.path.join(BASE_DIR, 'static')

#local setting
#STATICFILES_DIRS = (os.path.join(BASE_DIR, 'static'),)
05:53:35 ПП
User 194990550
В DO доке есть же офигенный гайд
05:53:36 ПП
User 240629525
location /static {
        expires 30d;
        access_log off;
        alias /var/www/static/bla-bla;
    }
05:53:53 ПП
User 129325914
еще можно autoindex on сделать
05:54:17 ПП
User 158695346
User 103952421
#product setting
STATIC_ROOT = os.path.join(BASE_DIR, 'static')

#local setting
#STATICFILES_DIRS = (os.path.join(BASE_DIR, 'static'),)
не надо так, static_root не должен быть включен в staticfiles_dirs.
05:54:18 ПП
User 129325914
но можно и не делать
05:54:23 ПП
User 129325914
для ассетов не критично
05:54:45 ПП
User 24147647
User 240629525
вообщем-то умеет, но чтобы не дергать джангу, отдают вебсервером
умеет, но при DEBUG=False надо самому делать обертку
и в доках указано Use a web server of your choice to serve the files
05:54:51 ПП
User 158695346
User 158695346
не надо так, static_root не должен быть включен в staticfiles_dirs.
вроде бы, джанга про это даже експешн вываливает при запуске.
05:55:18 ПП
User 240629525
неа не будет
05:56:20 ПП
User 240629525
User 24147647
умеет, но при DEBUG=False надо самому делать обертку
и в доках указано Use a web server of your choice to serve the files
ну там пара строчек, факт в том чтоо сделать можно, но дергать джангу для каждого статик файла очень накладно для сервера
05:56:58 ПП
User 24147647
User 240629525
ну там пара строчек, факт в том чтоо сделать можно, но дергать джангу для каждого статик файла очень накладно для сервера
ну гланды можно вырезать не через горло, но зачем?))
05:56:59 ПП
User 103952421
получается, самый быстрый вариант для сервера это через gunicorn/nginx
05:57:31 ПП
User 240629525
самый лучший вариант через nginx, а на счет gunicorn так и он воощем-то лишний
05:58:47 ПП
User 24147647
User 24147647
ну гланды можно вырезать не через горло, но зачем?))
потом появляется что-то типа этого: http://zacharyvoase.com/2009/09/08/sendfile/
zacharyvoase.com/2009/09/08/sendfile
A common problem in Django is serving static files whilst still keeping application-based authentication. It’s highly recommended that you use your web server for serving all static files, but how c
06:00:28 ПП
User 240629525
угу чтобы css админки не получили всякие ноунеймы, только это уже извращение_
06:00:37 ПП
User 129325914
я тут auth_request'ы на хероку прикручивал - вот извращение
06:01:33 ПП
User 103952421
как сделать чтобы в сервер не лезть после каждого деплоя?
06:01:50 ПП
User 103952421
базовый вариант без просчета на нагрузку
06:02:04 ПП
User 129325914
написать тесты??
06:02:09 ПП
06:02:24 ПП
User 240629525
а заем ты в сервер лезешь?
06:03:00 ПП
User 103952421
User 240629525
location /static {
        expires 30d;
        access_log off;
        alias /var/www/static/bla-bla;
    }
я думал это в настройках сервера нужно сделать
06:03:16 ПП
User 240629525
это в nginx
06:04:47 ПП
User 103952421
User 240629525
это в nginx
это не сервер?
06:05:02 ПП
User 240629525
web-server
06:06:11 ПП
06:11:29 ПП
User 103952421
User 158695346
когда ты запрашиваешь урл (/static/1.txt), который уходит в static files, то джанга отрезает от него ту часть, которая в настройках указана как STATIC_URL. То, что останется, ищется вначале в путях, которые прописаны в STATICFILES_DIRS, потом оно перебирает все приложения, заходит там в папку static и ищет вот тот остаточек там.
remote:  [1G [1G       $ python manage.py collectstatic --noinput        
remote:  [1G [1G       62 static files copied to '/app/static'.
06:12:09 ПП
User 103952421
STATICFILES_DIRS = нужно добавить?
06:13:03 ПП
User 240629525
User 103952421
STATICFILES_DIRS = нужно добавить?
это директории откуда будет статика собираться помимо приложений
06:14:31 ПП
User 103952421
# Static files (CSS, JavaScript, Images)
# https://docs.djangoproject.com/en/1.10/howto/static-files/

STATIC_URL = '/static/'
STATIC_ROOT = os.path.join(BASE_DIR, 'static')

STATICFILES_FINDERS = (
    'django.contrib.staticfiles.finders.FileSystemFinder',
    'django.contrib.staticfiles.finders.AppDirectoriesFinder',
)
06:14:48 ПП
User 160910236
how do you markup code on Mac
06:15:19 ПП
User 103952421
статика всеравно не собралась
06:15:57 ПП
User 103952421
нужно настроивать nginx и gunicorn?
06:16:57 ПП
User 240629525
User 160910236
how do you markup code on Mac
я до сих пор не понимаю как это сделать в ликунс-клиенте телеграм
06:17:33 ПП
User 240629525
User 103952421
статика всеравно не собралась
всмысле не собралась через collectstatic не собирается?
06:17:34 ПП
User 160910236
User 240629525
я до сих пор не понимаю как это сделать в ликунс-клиенте телеграм
ya toje nemogu na Mac'e
06:17:40 ПП
User 160910236
neznayu kak eto rabotaet
06:18:14 ПП
User 103952421
обратная кавычка
06:18:32 ПП
User 103952421
User 240629525
всмысле не собралась через collectstatic не собирается?
я не запускал команду, деплою через dokku
06:18:55 ПП
06:19:10 ПП
User 240629525
а с dokku черт его знает как
06:19:59 ПП
User 103952421
remote:  [1G [1G       $ python manage.py collectstatic --noinput        
remote:  [1G [1G       62 static files copied to '/app/static'.
06:20:03 ПП
User 103952421
62 static files copied to '/app/static'.
06:20:30 ПП
User 103952421
может мне это нужно вписать в static_dirs ?
06:20:51 ПП
User 103952421
перечитаю сообщения Паши еще раз)
06:21:21 ПП
User 158695346
User 103952421
перечитаю сообщения Паши еще раз)
http://telegra.ph/Django-and-staticfiles-02-17
telegra.ph/Django-and-staticfiles-02-17
когда ты запрашиваешь урл (/static/1.txt), который уходит в static files, то джанга отрезает от него ту часть, которая в настройках указана как STATIC_URL. То, что останется, ищется вначале в путях, которые прописаны в STATICFILES_DIRS, потом оно перебирает все приложения, заходит там в папку static и ищет вот тот остаточек там. Это поведение по умолчанию и настраивается в настройке STATICFILES_FINDERS. STATICFILES_FINDERS = (   'django.contrib.staticfiles.finders.FileSystemFinder',   'django.co…
06:23:30 ПП
User 24147647
User 240629525
я до сих пор не понимаю как это сделать в ликунс-клиенте телеграм
текст обернуть в тройные ` для многострочного, в одинарные для одной строки
06:24:15 ПП
06:24:47 ПП
User 103952421
User 158695346
http://telegra.ph/Django-and-staticfiles-02-17
telegra.ph/Django-and-staticfiles-02-17
когда ты запрашиваешь урл (/static/1.txt), который уходит в static files, то джанга отрезает от него ту часть, которая в настройках указана как STATIC_URL. То, что останется, ищется вначале в путях, которые прописаны в STATICFILES_DIRS, потом оно перебирает все приложения, заходит там в папку static и ищет вот тот остаточек там. Это поведение по умолчанию и настраивается в настройке STATICFILES_FINDERS. STATICFILES_FINDERS = (   'django.contrib.staticfiles.finders.FileSystemFinder',   'django.co…
remote:  [1G [1G       $ python manage.py collectstatic --noinput        
remote:  [1G [1G       62 static files copied to '/app/static'.
06:25:01 ПП
User 103952421
так у меня проходит же collectstatic
06:25:19 ПП
User 240629525
Очевидно что прододит)
06:25:56 ПП
User 240629525
теперь эту папку /app/static отдавай веб-сервером
06:26:06 ПП
User 103952421
Page not found (404)
06:26:43 ПП
User 240629525
Ну твой вебсервер не отдает ее
06:26:49 ПП
User 240629525
Надо его научить
06:27:24 ПП
User 103952421
если список урлов есть (рис.1) - значит не установился обработчик static урлов.
06:27:46 ПП
User 103952421
User 240629525
Надо его научить
это делается в докере?
06:30:11 ПП
User 103952421
обработчик static урлов это и есть вебсервер?
06:32:47 ПП
User 240629525
Не знаю что там в докере, факт в том что если у тебя докер запускает только gunicorn то тебе надо обработчик запихать в код django, потому что оно не умеет статику как nginx отдвать
06:33:11 ПП
User 240629525
urlpatterns += staticfiles_urlpatterns()
вот это
06:34:46 ПП
User 103952421
это в settings.py?
06:35:20 ПП
User 103952421
я туплю?)
06:36:12 ПП
User 240629525
это в urls.py
from django.contrib.staticfiles.urls import staticfiles_urlpatterns
urlpatterns = [ 
#тут твои
]
urlpatterns += staticfiles_urlpatterns()
06:36:41 ПП
User 240629525
это для единорога, но лучше всего конечно чтобы у тебя nginx был
06:36:41 ПП
User 24147647
только стоит не забывать:
This helper function will only work if DEBUG is True and your STATIC_URL setting is neither empty nor a full URL
06:38:52 ПП
User 103952421
nginx - есть, я просто не знаю где он лежит)
06:39:28 ПП
User 240629525
работает оно и на debug false, проверял на дев сервере
06:41:04 ПП
User 103952421
работает! спасибо..
06:41:17 ПП
User 103952421
как будет под нагрузкой поправлю через nginx)
06:41:58 ПП
User 240629525
не за что только это кривизна, ты должен понимать что так делать на продакшене не стоит
06:42:45 ПП
User 103952421
User 240629525
не за что только это кривизна, ты должен понимать что так делать на продакшене не стоит
да, спасибо. Это больше тест-прод
06:42:54 ПП
User 240629525
тогда ладно
06:43:01 ПП
User 103952421
как раз для единорога)
06:44:10 ПП
User 240629525
я бы и вообще не пользовался, uwsgi как стандарт или даже лучше flup на крайняк
06:48:38 ПП
User 103952421
User 240629525
я бы и вообще не пользовался, uwsgi как стандарт или даже лучше flup на крайняк
gunicorn-ом?
06:48:47 ПП
06:50:42 ПП
User 103952421
root@dokku:~# dokku nginx:help
Usage: dokku nginx[:COMMAND]

Interact with Dokku's Nginx proxy.

Additional commands:
    nginx:access-logs <app> [-t]   Show the nginx access logs for an application (-t follows)
    nginx:build-config <app>       (Re)builds nginx config for given app
    nginx:error-logs <app> [-t]    Show the nginx error logs for an application (-t follows)
    nginx                          Interact with Dokku's Nginx proxy
07:03:29 ПП
User 103952421
оставлю до лучших времен) еще пофронтендить надо 😊
07:20:53 ПП
User 21118953
Помогите по Django rest framework, пожалуйста! 
http://stackoverflow.com/questions/42286855/simple-filter-in-django-rest-framework
stackoverflow.com/questions/42286855/simple-filter-in-django-rest-framework
I have 2 models: author and comment. I need to get list of comments filtered by author_id! Something like this: api/authors/author_id/comments or this: api/comments?author_id=author_id or this...
07:21:11 ПП
User 21118953
уже 4 дня мучаюсь со стандартной задачей
07:22:41 ПП
User 21118953
В документации к django rest framework описано что нужно указать во view.py но нигде нет инфы, что при этом нужно изменить в urls.py
07:23:29 ПП
User 21118953
Удивительно при том, что задача очень стандартная
07:25:15 ПП
User 24147647
User 21118953
Помогите по Django rest framework, пожалуйста! 
http://stackoverflow.com/questions/42286855/simple-filter-in-django-rest-framework
stackoverflow.com/questions/42286855/simple-filter-in-django-rest-framework
I have 2 models: author and comment. I need to get list of comments filtered by author_id! Something like this: api/authors/author_id/comments or this: api/comments?author_id=author_id or this...
второй вариант урла обычно. нужно django_filters
07:25:50 ПП
User 21118953
не совсем понял
07:26:32 ПП
User 21118953
pip install django_filters ?
07:26:43 ПП
User 24147647
https://django-filter.readthedocs.io/en/latest/guide/rest_framework.html
07:27:13 ПП
User 24147647
filter_backends = (filters.DjangoFilterBackend,)
filter_fields = ('author', )
07:28:00 ПП
User 21118953
а во views и urls все оставить как у меня было в самом начале?
07:28:31 ПП
07:29:00 ПП
User 21118953
А вот эти строчки, что  вы написали - куда нужно добавить? В какой файл?
07:29:32 ПП
User 24147647
User 24147647
https://django-filter.readthedocs.io/en/latest/guide/rest_framework.html
view, они скопированы с этой ссылки
07:30:03 ПП
User 21118953
сейчас попробую, спасибо
07:31:30 ПП
User 24147647
если есть crispy_forms, то в browseable api появится кнопка "фильтры"
07:35:31 ПП
User 21118953
Когда во view
class CommentViewSet(viewsets.ModelViewSet):
ошибок нет, но и фильтров нет

Как только я меняю на 
class CommentViewSet(generics.ListAPIView):

Сразу возникает ошибка и от нее уже не удается избавится
07:35:36 ПП
User 21118953
TypeError: as_view() takes 1 positional argument but 2 were given
07:35:45 ПП
User 21118953
view = viewset.as_view(mapping, **route.initkwargs)
TypeError: as_view() takes 1 positional argument but 2 were given
07:37:03 ПП
User 24147647
User 21118953
TypeError: as_view() takes 1 positional argument but 2 were given
эта ошибка не связана с фильтрами, она потому что router принимает только ViewSet
07:37:44 ПП
User 24147647
User 21118953
Когда во view
class CommentViewSet(viewsets.ModelViewSet):
ошибок нет, но и фильтров нет

Как только я меняю на 
class CommentViewSet(generics.ListAPIView):

Сразу возникает ошибка и от нее уже не удается избавится
как проверял, что фильтров нет?
07:38:49 ПП
User 21118953
в браузере...  в интерфейсе django rest framework
07:38:58 ПП
User 21118953
сейчас еще раз проверю для верности
07:40:23 ПП
User 24147647
User 21118953
в браузере...  в интерфейсе django rest framework
в INSTALLED_APPS не забыто?
07:41:06 ПП
User 21118953
crispy_forms добавил
07:41:13 ПП
User 21118953
django-filters тоже надо?
07:41:17 ПП
07:43:03 ПП
User 24147647
User 21118953
pip install django_filters ?
django-filter>=1.0.1
07:45:30 ПП
User 21118953
да. установил. версия 1.0.1
07:45:42 ПП
User 21118953
Как в документации сделал:
# settings.py
REST_FRAMEWORK = {
    'DEFAULT_FILTER_BACKENDS': (
        'django_filters.rest_framework.DjangoFilterBackend',
        ...
    ),
}
07:45:51 ПП
User 21118953
что сразу вызвало кучу ошибок
07:46:00 ПП
User 21118953
ImportError: Could not import 'Ellipsis' for API setting 'DEFAULT_FILTER_BACKENDS'. AttributeError: 'ellipsis' object has no attribute 'split'.
07:46:16 ПП
07:46:18 ПП
07:46:19 ПП
User 21118953
сорри
07:46:22 ПП
User 21118953
нет ошибок
07:46:22 ПП
User 24147647
User 21118953
Как в документации сделал:
# settings.py
REST_FRAMEWORK = {
    'DEFAULT_FILTER_BACKENDS': (
        'django_filters.rest_framework.DjangoFilterBackend',
        ...
    ),
}
это нужно, когда во всех view надо фильтры, а у тебя не так
07:46:48 ПП
User 21118953
понял... ну мне сейчас хотя бы какой-то рабочий вариант получить
07:47:37 ПП
User 21118953
так добавил... ошибок нет... но и фильтров нет
07:47:57 ПП
User 24147647
на твоём месте я бы посмотрел что происходит в filter_queryset под дебаггером
07:47:57 ПП
User 21118953
сек... сейчас я кажется еще что-то упустил... сейчас проверю
07:48:08 ПП
User 21118953
это где смотреть? как смотреть
07:48:56 ПП
User 24147647
в ide ставишь точку останова, запускаешь в дебаге и пошагово после точки смотришь потроха
07:49:48 ПП
User 194990550
Ох кто-то хотел просто сделать симпл фильтр и тут понеслось
07:49:51 ПП
User 21118953
Меня несколько смущает, что всех документациях всегда пишут (generics.ListAPIView)

Это точно никак не связано с фильтрами и мне можно оставить (viewsets.ModelViewSet) ?
07:50:40 ПП
User 21118953
User 194990550
Ох кто-то хотел просто сделать симпл фильтр и тут понеслось
Ну согласисиь, что-то более стандартное для rest придумать сложно
07:52:48 ПП
User 24147647
User 21118953
Меня несколько смущает, что всех документациях всегда пишут (generics.ListAPIView)

Это точно никак не связано с фильтрами и мне можно оставить (viewsets.ModelViewSet) ?
точно можно оставить
07:55:35 ПП
User 24147647
из моего проекта:

class PortalViewSet(viewsets.ReadOnlyModelViewSet):
     queryset = Portal.objects.all()
     serializer_class = PortalSerializer
     lookup_field = 'guid'
     filter_backends = (DjangoFilterBackend,)
     filter_fields = ('name', )
07:57:18 ПП
User 21118953
А что в urls.py ?
07:57:42 ПП
User 21118953
http://s.rwns.ru/Integration_with_DRF__django-filter_1.0.1_documentation_2017-02-17_22-56-28.png
s.rwns.ru/Integration_with_DRF__django-filter_1.0.1_documentation_2017-02-17_22-56-28.png
07:59:27 ПП
User 21118953
lookup_field это что?
07:59:39 ПП
User 24147647
User 21118953
http://s.rwns.ru/Integration_with_DRF__django-filter_1.0.1_documentation_2017-02-17_22-56-28.png
s.rwns.ru/Integration_with_DRF__django-filter_1.0.1_documentation_2017-02-17_22-56-28.png
это 1 вариант, написано: This is equivalent
08:00:03 ПП
User 21118953
нужно оба этих блока писать или только 1 из них ?
08:00:07 ПП
User 24147647
User 21118953
А что в urls.py ?
router = DefaultRouter()
router.register(r'portals', PortalViewSet)
08:00:50 ПП
User 24147647
User 21118953
lookup_field это что?
это поле, по которому получается 1 объект, обычно там pk
08:01:05 ПП
User 24147647
User 21118953
нужно оба этих блока писать или только 1 из них ?
только один
08:04:59 ПП
User 21118953
для вашего примера нужно import делать так:
from django_filters import rest_framework as DjangoFilterBackend ?
08:05:21 ПП
User 21118953
чтобы вот это работало... filter_backends = (DjangoFilterBackend,)
08:07:54 ПП
User 24147647
from django_filters.rest_framework import DjangoFilterBackend
09:19:08 ПП
User 21118953
User 24147647
from django_filters.rest_framework import DjangoFilterBackend
Спасибо! Все получилось.
09:21:10 ПП
User 21118953
Единственное так и не понял как именно можно использовать lookup_field и что можно указывать в качестве lookup_field