
Konstantin
17.04.2018
13:28:17

Dude
17.04.2018
13:33:02

Dan
17.04.2018
13:33:25
полный путь до проекта

Dude
17.04.2018
13:36:12
в 1 я указал полный путь до проекта, где лежат аппы

Google

Dude
17.04.2018
13:36:14
в сурсе что?

Dan
17.04.2018
13:38:12
можно не указывать
это у меня проект лежит в папке source

Dude
17.04.2018
13:38:14
путь до аппы?

Dan
17.04.2018
13:39:38
можешь просто указать один путь
sys.path.extend(['/YOUR/PATH'])

Dude
17.04.2018
13:41:12
блин, надо чекать как у тебя settings.py выглядит
у меня кидает ModuleNotFoundError: No module named 'core'

Dan
17.04.2018
13:41:28
а точно
укажи аппку где лежит settings

Dude
17.04.2018
13:42:45
вторым элементом в массиве extend?

Dan
17.04.2018
13:42:57
эту строку можешь взять из manage.py
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "core.settings")

Dude
17.04.2018
13:47:11

Dan
17.04.2018
13:50:38
сделай print(sys.path)
после sys.path.extend

Google

Dude
17.04.2018
13:53:34
https://pastebin.com/g9erHenY

Bogdan
17.04.2018
13:57:09
может конфликт имен?
Combo.Combo.settings vs Combo.settings
вот это выглядит лишним '/home/user1/developing/ComboProj/Combo/Combo', '/home/user1/developing/ComboProj'

Dude
17.04.2018
14:00:23
Я создал папку и там сделал django-admin startproject Combo. Он же автоматом сделает мне вложенную папку с settings.py. Откуда конфликт имен ?

Dan
17.04.2018
14:00:28
по теории он должен использовать первый подошедший
почему в твоем случае не находит
сейчас не знаю, надо пробовать
если зальеш на github попробую запустить

Bogdan
17.04.2018
14:02:00
с самой структурой папок все ок. а скрипт запускаешь руками или через пичарм?

Dude
17.04.2018
14:02:08
пичарм

Bogdan
17.04.2018
14:03:07
отжимай галочки add ... to PYTHONPATH в параметрах запуска

Dude
17.04.2018
14:04:05
я видимо знаю что не так

Dan
17.04.2018
14:04:22

Dude
17.04.2018
14:05:37
ах, нет. Я попробовал запустить с включенным сервером через консоль
тут кидает такую ошибку ModuleNotFoundError: No module named 'Combo'
имеет значение то, где лежит сам скрипт ?

Bogdan
17.04.2018
14:06:21
на сервере пути другие наверно

Dude
17.04.2018
14:06:28
я его рядом с settings.py положил

Bogdan
17.04.2018
14:06:34
ты ж абсолютные прописал

Dan
17.04.2018
14:06:42
нет

Google

Dan
17.04.2018
14:06:53
ты же на своей машине запускаешь ?

Dude
17.04.2018
14:06:55
вдруг
да
на локалке

Bogdan
17.04.2018
14:07:13
а, я думал серв удаленный

Dude
17.04.2018
14:07:47
ага, тестирую прям на стейдже
нет

Bogdan
17.04.2018
14:08:24
запусти его просто через python script.py
без пичарма

Dude
17.04.2018
14:08:54
ах, нет. Я попробовал запустить с включенным сервером через консоль
тут кидает такую ошибку ModuleNotFoundError: No module named 'Combo'
это без пичарма

Bogdan
17.04.2018
14:09:23
ок, не так понял
тогда странно

Dude
17.04.2018
14:10:49
да полюбому с путями дичь какая-то
https://pastebin.com/9DNcwpFh
Помогитеееее

Eugene
17.04.2018
14:19:17
Combo/Combo ?

Dan
17.04.2018
14:20:02
Combo/Combo ?
не эт нормально
когда проект создаешь он же подпапку сам создает с таким же именем

Dude
17.04.2018
14:24:15
Окей, переопределять имена не вариант я так понимаю

Google

Dude
17.04.2018
14:24:20
или что в итоге делать

Bogdan
17.04.2018
14:26:55
пробуй положить скрипт в ./ComboProj/Combo и запускать его от туда

Artem
17.04.2018
14:36:26
Ребят, сегодня мало чего понимаю, поэтому спрошу у вас, есть модель фоловеров:
class Follow(AbstractModelDateClass):
user = models.ForeignKey(
settings.AUTH_USER_MODEL,
related_name='user_%(class)s',
verbose_name='User'
)
follower = models.ForeignKey(
settings.AUTH_USER_MODEL,
related_name='follower_%(class)s',
verbose_name='Follower user'
)
ничего тут необычного.
Задача, как-то закинуть это в аннотацию, что бы одним запросом посчитать количества фоловеров и фолловингов???

Bogdan
17.04.2018
14:37:41
точка отсчета юзер?

Artem
17.04.2018
14:37:52
Lf
Da
в табличку пишу текущего пользователя, и пользователя которого зафоловил

Bogdan
17.04.2018
14:39:38
а что за 'user_%(class)s'? те догадываюсь, что связанно с моделью юзера, но первый раз вижу

Artem
17.04.2018
14:39:58
дык, релейтед нейм

Bogdan
17.04.2018
14:40:18
саму заись с шаблоном не видел

Dan
17.04.2018
14:41:20
.annotate(
folloers=Count('pk', filter=Q(user=USER)),
following=Count('pk', filter=Q(follower=USER)),
)

Artem
17.04.2018
14:41:32
:(

Dan
17.04.2018
14:41:41
у меня уже с головой тоже не очень

Bogdan
17.04.2018
14:42:07
так точка отсчета юзер же, а не связь
просто Count по related_name по идее

Dan
17.04.2018
14:42:53
там еще есть понт с группировкой
или нет
все я уже тоже не соображаю

Artem
17.04.2018
14:43:36
в 1.11 еще нет свойства - filter=Q

Google

Bogdan
17.04.2018
14:43:59
так там же select (select ... join on realted_name=auth_users.pk) as count
или что-то в духе вроде

Artem
17.04.2018
14:44:31
оно и так джоинит табличеку
SELECT
"users_user"."id",
"users_user"."email",
"users_user"."is_active",
COUNT("users_follow"."follower_id" = 1) AS "following_cnt",
COUNT("users_follow"."user_id" = 1) AS "follower_cnt"
FROM "users_user"
LEFT OUTER JOIN "users_follow"
ON ("users_user"."id" = "users_follow"."user_id")
WHERE "users_user"."id" = 1
GROUP BY "users_user"."id";

Dude
17.04.2018
14:45:48
эта поеботина сработала

Bogdan
17.04.2018
14:45:58
а, он так это делает.

Dude
17.04.2018
14:46:02
когда я вынес на 1 уровень выше

Bogdan
17.04.2018
14:46:17
тогда да, жопа. предлагаю rawsql - меньше боли будет

Artem
17.04.2018
14:46:42
да я все подумываю апнуться до 2ой ветки

Bogdan
17.04.2018
14:47:20
через группировку такой запрос вообще адекватно не написать вроде как
дык с 1.11 на 2.* легко перехать - поправить пути или импортнуть из депрекейтед

Artem
17.04.2018
14:48:55
шас попобую апнуть, посмотрю что упадет

Dan
17.04.2018
14:48:57
https://docs.djangoproject.com/en/2.0/ref/models/expressions/#subquery-expressions
в 1,11 есть подзапросы

Bogdan
17.04.2018
14:49:22
?

Artem
17.04.2018
14:50:59
эт меня устроит

Dan
17.04.2018
14:51:31
.annotate(
folloers=Subquery(.filter(user=USER)),
following=Subquery(.filter(follower=USER)),
)
получается что то вроде ?
покажешь запрос ?

Artem
17.04.2018
14:51:43
шас

Bogdan
17.04.2018
14:52:10
только вместо USER OuterRef('pk') наверно