
Artem
30.06.2017
08:57:56
а саму авторизацию по нескольким полям просто принимай во вьюху, где авторизовываешь, проверяй как тебе надо поля, и присваивай нормальный токен
нет, в том проекте идентификация по мыльнику и паролю, и в случае если не был передан еще флаг - is_mobile=true, то добавлялись сессии

Grigoriy
30.06.2017
08:59:52
Ну смотри, у тебя в jwt_payload_handler в наборе claim-ов от юзера передается только uid
И когда идёт верификация или рефреш токена, то поиск юзера идёт только по uid - в принципе, мне это подходит)

Google

Artem
30.06.2017
09:01:05
так id или uid всегда уникальный, и он нормально сгенерируется, тебе главное на этапе авторизации получить данные, кверисетом отобрать и получить нужного
и к нему получить новый валидный jwt

Grigoriy
30.06.2017
09:02:33
ок, я понял. Для авторизации я пару сериализаторов переопределил. Запарился только на самом моменте получения токена
Ок, спасибо за толчок в нужном направлении)

Artem
30.06.2017
09:03:18
Пожалуйста)
На крайняк, можно кастомный сериализатор сделать на коллекции и туда запихать разные данные, без валидации конечно, но быстрая реализация)

Grigoriy
30.06.2017
09:13:02
Кстати, а что такое 'rand' у тебя? Для каких целей?

Рустам
30.06.2017
10:12:22
Прям так и написали в тз)

Dan
30.06.2017
10:25:49

Рустам
30.06.2017
10:52:27

Igor
30.06.2017
11:01:16
Привет, есть модель, у нее может быть FK на одну из 6 моделей. Делать это через GFK, или смысла нет, если модели фиксированные?

Dan
30.06.2017
11:05:10
GFK?

Google

Igor
30.06.2017
11:10:55
Generic Foreign Key

Set
30.06.2017
11:13:28
решил проблему!!! сорян

Alexander
30.06.2017
11:13:46
Правильное оформление кода повысит вероятность, что его вообще прочитают
Dpaste.de

Pavel
30.06.2017
11:31:28
Не юзал ничего кроме джанги и фласка, поэтому есть вопрос. Нужно реализовать сервис для асинхронного обмена данными формата json(это тестовое задание, но не мое, просто хочу уметь такие делать). Обмен данными происходит по идентификатору получателя (POST /api/<ид. получателя> - отправка на сервер; GET /api/<ид. получателя > - получение с сервера). Должен работать один из способов создания структуры БД, позволяющий без особых усилий вносить изменения в структуру базы данных. Джангу и алхимию юзать нельзя. Подскажите, какой стек в этом случае хорошо подойдет. Знаю, задача изи, можно разными способами решить, но посоветуйте, пожалуйста.

Ruslan
30.06.2017
11:43:06
elasticsearch

Леша
30.06.2017
11:43:45
Привет. Кто-нибудь знает, как в sqlalchemy в поле DateTime сохранить datetime.date.today()? мне нужно сохранить только день, месяц и год

Ruslan
30.06.2017
11:44:30
поменять тип поля

Леша
30.06.2017
11:45:55
на какой?
я новичек в этом. ставлю пишу Column(Datetime, default=datetime.date.today()) - неправильно

Ruslan
30.06.2017
11:47:31
Date?

Леша
30.06.2017
11:49:11
ошибка: SQLite Date type only accepts Python date objects as input.
date = Column(Date, default=datetime.date.today()) поле выглядит вот так

Igor
30.06.2017
11:51:59
default=datetime.date.today() оно не будет создавать с today
Оно исполнится один раз, и далее будет постоянно одна и та же дата

Леша
30.06.2017
11:52:42
в один день - да
в разные дни разные даты

Igor
30.06.2017
11:53:05
Нет

Леша
30.06.2017
11:53:37
что тогда делать, если нужно, что бы хранились именно день, месяц и год?

Igor
30.06.2017
11:54:11
datetime.date.today()

Google

Igor
30.06.2017
11:54:31
Но опять же, эта дата будет корректной только в первый день)

Леша
30.06.2017
11:57:18
то-есть, если в следующий день я добавляю объект в бд, у него будет та же дата, что и вчера?

Igor
30.06.2017
11:59:07
В идеале писать - default = datetime.date.today

Леша
30.06.2017
11:59:59
а результат будет правильный в любой день?

Igor
30.06.2017
12:00:14
Да
Должно работать правильно.

Леша
30.06.2017
12:03:11
все работает правильно, спасибо )

Artem
30.06.2017
14:46:06
Ребят, яндекс кассу прикручивал кто-нибудь?

Roman
30.06.2017
16:17:33
я прикручивал, но в итоге вручную проще оказалось, чем через их плагин
но тут ведь новый закон ввели, который завтра вступает в силу, и надо все менять

Roman
30.06.2017
16:18:18
там что-то про отправку чеков в налоговвую

Set
01.07.2017
04:23:04
подскажите в чем проблема
2017/07/01 10:20:18 [crit] 13522#0: *32263 connect() to unix:/var/www/zhangulim.kz/gunicorn_conf/site.sock failed (13: Permission denied) while connecting to upstream, client: 91.201.214.3, server: site, request: "GET /favicon.ico HTTP/1.1", upstream: "http://unix:/var/www/site/gunicorn_conf/zhangulim.kz.sock:/favicon.ico", host: "zhangulim.kz", referrer: "http://site/"
работал

Nikita Kurinnyi
01.07.2017
04:51:41
Права на сокет файл, в логе же написано)

Erzh
01.07.2017
04:53:10
только не ставь 777)

Nikita Kurinnyi
01.07.2017
04:54:13
Запусти через докер да и все, нет гемора с правами

Set
01.07.2017
05:15:44

Nikita Kurinnyi
01.07.2017
05:16:24
Показывай права на файл

Google

Nikita Kurinnyi
01.07.2017
05:16:40
И от какого юзера запущено все?

Set
01.07.2017
05:17:59
прова стоят 775 на все! все время работал и вдруг какием то чудесным образом 500 ошибка!!! прописал даже еще раз команду chmod 775 /dir/*

Nikita Kurinnyi
01.07.2017
05:18:42
Зачем? У тебя трабла только а сокет файлом, зачем на все писать?

Set
01.07.2017
05:19:11

Admin
ERROR: S client not available

Nikita Kurinnyi
01.07.2017
05:19:12
Что за права на сокет файле?

Set
01.07.2017
05:23:09
стоят 775 на все кроме 2ух файлов db.sqlite3 manage.py

Nikita Kurinnyi
01.07.2017
05:23:57
В след раз лучше давай вывод ls -la

Set
01.07.2017
05:24:28

Nikita Kurinnyi
01.07.2017
05:24:42
Можешь дать сейчас этот вывод? И от какого юзера у тебя запущен веб сервер(nginx я предполагаю)

Set
01.07.2017
05:25:48
MPTTModelAdmin можно ли прикрутить inlines если да, то как ?

Erzh
01.07.2017
05:32:14
зачем сайт от рута заливать? Создай пользователя и работай под ним

Nikita Kurinnyi
01.07.2017
05:32:28
Чёт я не вижу /var/www/zhangulim.kz/gunicorn_conf/site.sock

Set
01.07.2017
05:33:14

Nikita Kurinnyi
01.07.2017
05:33:57
Вот в нем и проблема, запусти nginx от своего пользователя

Erzh
01.07.2017
05:36:08
Зачем? Nginx должен быть запущен от nginx, а вот gunicorn от его юзера
И на файлах owner должен быть не рут, а пользователь от которого работает gunicorn

Nikita Kurinnyi
01.07.2017
05:45:24
Я уже забыл когда без докера это все делал, там все о root и вообще пофиг на это

Google


Set
01.07.2017
05:46:15
пробую
ругается
я просто делаю по нему
1) Создать нового пользователя с домашней папкой. Пусть это будет site.kz с домашней папкой /var/www/site.kz
Для этого введите команду useradd -d /var/www/site.kz -m site.kz
2) Дать папке /var/www/site.kz/ права 755. Иначе nginx выдаст ошибку 403
chmod 755 /var/www/site.kz
3) Залогиниться под пользователем site.kz
su - site.kz
4) Создать папки для виртуального окружения, gunicorn-a и самого проекта.
mkdir my_env gunicorn_conf httpdocs
virtualenv my_env
5) Загрузить папку Вашего проекта в httpdocs
Можете использовать любой способ (ftp, git, ssh и т.п)
6) Произвести установку всех пакетов + gunicorn в Ваше виртуальное окружение
7) Создать конфигурационный файл gunicorn аналогично проекту zhanalemi.kz
Далее от root-а
8) Создать конфигурационный файл nginx аналогично проекту zhanalemi.kz
9) Создать systemd-unit-file аналогично проекту zhanalemi.kz. Пусть это будет /etc/systemd/system/site-gunicorn.service
При редактировании файлов не забудьте исправить полные пути до файла сокета и пути в systemd-unit-file.
10) Перезагрузить nginx
systemctl restart nginx
11) Добавить gunicorn-сервис данного сайта в автозагрузку и запустить его
systemctl enable site-gunicorn
systemctl start site-gunicorn


Nikita
01.07.2017
05:53:32
ребят, а подскажите, можно ли так сделать: имею в модели поле description (описание) и поле Value для хранения значения. Как правильно в форме вывести поле description? Сейчас вот так
'''class AnswersForm(forms.ModelForm):
description = forms.CharField(
label='Описание',
widget=forms.Textarea(attrs={'readonly': 'readonly'})
)
value = forms.CharField(label='Значение')'''

Ilgiz
01.07.2017
05:54:48
Темболее если modelForm

Nikita
01.07.2017
05:56:14
а можно как то с делать, чтобы widget был обычным p?

Erzh
01.07.2017
05:56:58

Nikita Kurinnyi
01.07.2017
05:57:36
Так это песочница, пофиг что там все от рута
compose файл зато пишется за 1 минуты и все подымается 1 командой

Set
01.07.2017
06:04:50
блин попытался я сделать через пользователя так у меня теперь 500 стоит и не хочет запускаться

Erzh
01.07.2017
06:19:58
502? Что показывает systemctl status имя_сервиса_который_gunicorn_сайта?

Set
01.07.2017
06:41:02

Erzh
01.07.2017
06:42:02
много не удачных ssh-авторизаций