← пред | след →
vetinary1 2022-07-01 10:53:10

Всем Привет. Ребят, посмотрите пожалуйста код на предмет оптимизации.
Функция post_like, которая ставит посту лайк. Написана но основе модели PostLike и PostDislike
в коде оставил коменты, модель дизлайка зеркальная лайку.
возможно это как то можно улучшить или сократить. но я два дня выводил этот вариант. сам код находится в services.py и во вьюху только функция передана.
Через AJAX c jQuery пока не хочу делать.
vetinary1 2022-07-01 10:53:11
Alower 2022-07-01 11:31:14
vetinary1 2022-07-01 10:53:11
Пипец сложный код, это одно лайк и дизлайк? Мне было бы интересно посмотреть про подписку просмотры а так же комментарии
vetinary1 2022-07-01 11:53:39
Alower 2022-07-01 11:31:14
Пипец сложный код, это одно лайк и дизлайк? Мне было бы интересно посмотреть про подписку просмотры а так же комментарии
это только лайк, дизлайк такой же код. Вот я и хочу его оптимизировать, но пока идей нет
kastenkamasha 2022-07-01 11:54:26
vetinary1 2022-07-01 11:53:39
это только лайк, дизлайк такой же код. Вот я и хочу его оптимизировать, но пока идей нет
сделай проверку, поставлен ли лайк, если нет — ставь, если есть — убирай
vetinary1 2022-07-01 11:55:16
kastenkamasha 2022-07-01 11:54:26
сделай проверку, поставлен ли лайк, если нет — ставь, если есть — убирай
У меня проверка же в ифах
bot4_u 2022-07-01 11:55:28
У тебя несколько раз одинаковая фильтрация идёт, это все можно сократить
vetinary1 2022-07-01 11:55:57
С таким функционал, поэтому elif такой тяжелый
ak_dastan 2022-07-01 11:57:32
в трелло в чек листе можно ли сделать переход на новую строку? ctrl enter не работает
bot4_u 2022-07-01 11:58:17
Зачем в elif после or условие, если оно автоматически выполняется после проверки if
vetinary1 2022-07-01 11:59:11
bot4_u 2022-07-01 11:58:17
Зачем в elif после or условие, если оно автоматически выполняется после проверки if
Без него обе функции перестают работать. То есть они удаляют и лайк и дизлайк
vetinary1 2022-07-01 12:00:42
bot4_u 2022-07-01 11:58:17
Зачем в elif после or условие, если оно автоматически выполняется после проверки if
И оно нужно, чтобы если ты поставил дизлайк и хочешь поставить лайк, не нужно было нажимать сначала диз а потом лайк — сразу лайк и диз удаляется
vetinary1 2022-07-01 12:02:01
bot4_u 2022-07-01 11:58:17
Зачем в elif после or условие, если оно автоматически выполняется после проверки if
Могу расшарить репу
bot4_u 2022-07-01 12:02:49
Сделай return при выполнении условия первого if — уже будет проще
bot4_u 2022-07-01 12:03:25
vetinary1 2022-07-01 12:02:01
Могу расшарить репу
Сорян, у меня нет времени особо вникать 😁
vetinary1 2022-07-01 12:05:08
всм return PostLike.objects.filter(like_by=request.user, post=post).delete()
vetinary1 2022-07-01 12:05:18
ты имеешь ввиду?
vetinary1 2022-07-01 12:10:16
самое печальное, что для лайков комментов придется такие же две пачки писать)
vetinary1 2022-07-01 12:12:35
Можно кст просто в переменные засунуть эти кьюрисеты и через них вызывать и будет не такая тяжёлая функция
bot4_u 2022-07-01 12:13:37

я бы как то примерно так это написал
vetinary1 2022-07-01 12:18:18
bot4_u 2022-07-01 12:13:37
я бы как то примерно так это написал
Да, я так и хочу в переменные засунуть запросы. Больше пока на ум ничего не пришло
vetinary1 2022-07-01 12:19:14
Первая итерация просто чтобы заработал функционал)
jordan_on_my_feet 2022-07-01 12:33:21
vetinary1 2022-07-01 12:18:18
Да, я так и хочу в переменные засунуть запросы. Больше пока на ум ничего не пришло
флажок поставь. Перед основной логики лайка, например is_liked = False, если всё проверки на лайк пройдут то меняй значение на True иначе выполняй диз.
vetinary1 2022-07-01 12:33:49
jordan_on_my_feet 2022-07-01 12:33:21
флажок поставь. Перед основной логики лайка, например is_liked = False, если всё проверки на лайк пройдут то меняй значение на True иначе выполняй диз.
У меня дизлайк отдельная функция и модель
jordan_on_my_feet 2022-07-01 12:34:41
vetinary1 2022-07-01 12:33:49
У меня дизлайк отдельная функция и модель
Ну я подкинул идею как это сделать в одном.
← пред | след →