@pydjango
Django

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

1741 members

Архив канала @pydjango 12 декабря 2016 г.

04:16:11 ДП
User 234491501
Optimizing the construction of Django QuerySets
http://adamj.eu/tech/2016/11/30/optimizing-construction-of-django-querysets/
06:53:47 ДП
User 71949287
Задача: добавить на сайт возможность поиска по продуктам. Продукт это моделька с несколькими полями (название, описание, марка). Желательно иметь возможность "умного поиска", то есть когда вводишь в поле текст, то тебе выдаются результаты в выпадающем списке.

Что посоветуете? Сам смотрю в сторону Haystack + elasticsearch.
07:51:59 ДП
User 100243492
User 71949287
Задача: добавить на сайт возможность поиска по продуктам. Продукт это моделька с несколькими полями (название, описание, марка). Желательно иметь возможность "умного поиска", то есть когда вводишь в поле текст, то тебе выдаются результаты в выпадающем списке.

Что посоветуете? Сам смотрю в сторону Haystack + elasticsearch.
можешь и на постгресе реализовать, а вообще это обычный ILIKE UPPER(%text%)
08:15:05 ДП
User 18500084
User 71949287
Задача: добавить на сайт возможность поиска по продуктам. Продукт это моделька с несколькими полями (название, описание, марка). Желательно иметь возможность "умного поиска", то есть когда вводишь в поле текст, то тебе выдаются результаты в выпадающем списке.

Что посоветуете? Сам смотрю в сторону Haystack + elasticsearch.
Зависит от количества и сложности данных. В простых сайтах можно прикрутить и django-watson - прекрасно работает
09:23:26 ДП
User 135467237
Доброго времени суток! У меня вопрос. Можно ли в моделях в джанго, при использовании постгрес указать поле в которое будет вноситься множество элементов полей уже существующих в этой же таблице
09:37:48 ДП
User 48374918
Можно использовать jsonfield
09:38:12 ДП
User 48374918
Но зачем? Если поля уже прописаны
09:54:27 ДП
User 135467237
Мне нужно связать альтернативные запис в блоге
09:54:33 ДП
User 135467237
чтобы на них выводились ссылки
09:59:09 ДП
User 261260366
тэги, группы, топики - это все не подходит? нужны прямые ссылки на другие записи?
10:15:29 ДП
User 135467237
ну посоветуйте как можно связать несколько постов, чтобы они отображали ссылки друг на друга
10:26:32 ДП
User 261260366
таблица постов, у каждого поста есть филд "tag" или "related". и, собственно, делать выборку по этому филду. исключать current запись (если нужно) и отдавать.
10:28:09 ДП
User 261260366
а этот тэг, скорее всего, сделать foreign key на таблицу с этими самыми тегами.
10:28:37 ДП
User 261260366
обьяснил коряво, но должно быть понятно
10:32:22 ДП
User 226624052
Гайз, есть у кого-то конфиги по развертыванию серва и деплою?
10:54:35 ДП
User 155509417
На digitalocean гайды читал и делал. Там понятно вроде.
10:56:17 ДП
User 155509417
Я сам новичок и может не понял вопроса)
12:41:37 ПП
User 135467237
решил проблему связью один ко многим 😅
12:48:19 ПП
User 135467237
А ещё вопрос. Кто-нибудь реализовывал теги для записей на сайте? Может есть встроенные модули или все решается привязкой таблицы с тегами к таблице с записями?
12:50:53 ПП
User 18500084
можете подсмотреть тут: https://github.com/alex/django-taggit
github.com/alex/django-taggit
Simple tagging for django. Contribute to alex/django-taggit development by creating an account on GitHub.
12:53:36 ПП
User 135467237
спасибо
03:30:00 ПП
User 60095103
Всем привет!
03:31:10 ПП
User 60095103
У меня вопрос: сейчас разбираюсь вот с одной системой и там нужно протестировать postback. Я правильно понимаю, что нужно веб-сервер поднимать, чтобы принимать или отправлять postback ?
03:32:05 ПП
User 60095103
Или это можно сделать на обычной странице на HTML + JS?
03:32:39 ПП
User 60095103
Что это вообще такое - работа с офферами, партнёрами, что то вроде actionpay
03:32:43 ПП
User 60095103
Есть кто в теме? )
03:37:55 ПП
User 191376311
Всем привет
03:38:12 ПП
User 191376311
Помогите разобраться
03:38:46 ПП
03:38:47 ПП
User 191376311
Помогите сделать ссылку "Назад"
03:38:47 ПП
03:38:48 ПП
03:38:48 ПП
User 191376311
Можно как-то в в шаблон передать переменную?
03:38:49 ПП
03:38:49 ПП
User 191376311
Только чтобы эту переменную в urls.py не прописывать
03:38:49 ПП
User 191376311
так она уже прописана
или что ты имеешь в виду?
03:38:50 ПП
User 191376311
<pk> и <page> прокидываются во вьюху
03:38:50 ПП
User 191376311
у тебя есть вьюха views.book_page
когда на нее заходят, она вызывается так:
views.book_page(request, pk=123, page='foobar')
03:38:51 ПП
User 191376311
в зависимости от того, по какому урлу зашли, естестна
03:38:51 ПП
User 191376311
соответственно, ниче не мешает прокинуть тебе данные из вьюхи
03:38:52 ПП
User 191376311
У меня есть ссылка http://127.0.0.1:8000/book/5/page=2
03:38:52 ПП
User 191376311
page=2 это то что на первом скрине page=page
03:38:52 ПП
User 191376311
Как мне сделать http://127.0.0.1:8000/book/5/page=1
03:38:53 ПП
User 191376311
тоесть от page=(page - 1)
03:38:53 ПП
User 191376311
не понял.
ты зашел на http://127.0.0.1:8000/book/5/page=2
и хочешь там отобразить ссылку на страницу http://127.0.0.1:8000/book/5/page=1
так?
03:38:54 ПП
03:38:54 ПП
User 191376311
ну смотри


def book_page(request, pk, page):
    ...
    return render(request, 'book/page.html', {
         'page': page
    }


и в шаблоне book/page.html:
{% url 'book_page' pk=book.pk page=page-1 %}
03:38:55 ПП
User 191376311
че-т типа того
03:38:55 ПП
User 191376311
если будет говниться что page - это строка, то, ну, {'page': int(page)} из вьюхи передавай. или вроде url роутер в джанге умеет к определенным типам приводить, надо документацию почитать
03:38:56 ПП
User 191376311
точно не помню
03:38:56 ПП
User 191376311
Ребят, есть тут кто-то кто Каte Mobile юзает? Никому про версия не нужна ?
03:38:56 ПП
User 191376311
Это я делаю. int(page) пробовал передавать
03:38:57 ПП
03:38:57 ПП
User 191376311
а в скобочки?
03:38:58 ПП
User 191376311
page=(page-1)
03:38:58 ПП
User 191376311
на стороне шаблона
03:38:59 ПП
03:38:59 ПП
03:38:59 ПП
03:39:00 ПП
User 191376311
Уже часа 2 сижу над этим
03:39:00 ПП
User 191376311
пиздарики
ну хорошо
03:39:01 ПП
User 191376311
page|add:"-1"
03:39:01 ПП
User 191376311
а если так блять
03:39:02 ПП
User 191376311
(ну или ничего не мешает во вьюхе в контекст прокинуть { 'prev_page': page - 1 }
03:39:02 ПП
User 191376311
Don't mix *args and **kwargs in call to reverse()!
03:39:02 ПП
User 191376311
это, конечно, как-то хреново
03:39:03 ПП
User 191376311
а если в скобочках, то же самое?
03:39:03 ПП
User 191376311
page=(page|add:"-1")
03:39:04 ПП
User 191376311
Could not parse some characters: |(page||add:"-1")
03:39:04 ПП
User 191376311
че-т лишнее
03:39:05 ПП
User 191376311
{% url 'book_page' pk=book.pk page=(page|add:"-1") %}
или ну может правда во вьюхе сделать. там заодно и проверка не помешает на случай, если страница == 1
03:39:05 ПП
User 191376311
не надо отображать ссылку для страницы 0, т.к. ее не будет существовать
03:39:05 ПП
03:39:06 ПП
User 191376311
Попробую
03:39:06 ПП
User 191376311
Спасибо большое
03:39:07 ПП
03:39:07 ПП
User 191376311
ой бля пиздец
03:39:08 ПП
User 191376311
как хорошо, что я этим не занимаюсь больше
03:39:08 ПП
03:39:09 ПП
User 191376311
Спасибо
03:39:21 ПП
03:39:22 ПП
User 191376311
Помогите сделать ссылку "Назад"
03:39:22 ПП
03:39:23 ПП
03:39:23 ПП
User 191376311
Можно как-то в в шаблон передать переменную?
03:39:24 ПП
03:39:24 ПП
User 191376311
Только чтобы эту переменную в urls.py не прописывать
03:39:24 ПП
User 191376311
У меня есть ссылка http://127.0.0.1:8000/book/5/page=2
03:39:25 ПП
User 191376311
page=2 это то что на первом скрине page=page
03:39:25 ПП
User 191376311
Как мне сделать http://127.0.0.1:8000/book/5/page=1
03:39:26 ПП
User 191376311
тоесть от page=(page - 1)
03:39:26 ПП
User 191376311
не понял.
ты зашел на http://127.0.0.1:8000/book/5/page=2
и хочешь там отобразить ссылку на страницу http://127.0.0.1:8000/book/5/page=1
так?
03:39:27 ПП
03:39:33 ПП
User 191376311
Почему нельзя пересылать сообщения?
03:39:51 ПП
03:39:55 ПП
User 191376311
Простите
03:40:15 ПП
User 191376311
Телеграм глючит
03:41:06 ПП
User 191376311
User 191376311
не понял.
ты зашел на http://127.0.0.1:8000/book/5/page=2
и хочешь там отобразить ссылку на страницу http://127.0.0.1:8000/book/5/page=1
так?
Как это можно сделать?
03:41:52 ПП
03:42:07 ПП
User 61043901
User 191376311
Ребят, есть тут кто-то кто Каte Mobile юзает? Никому про версия не нужна ?
Не нужна, у самого подписка есть
03:42:22 ПП
User 191376311
Я случайно
03:43:13 ПП
User 61043901
Вашушмать, что вы с пагинацией городите?
03:43:51 ПП
User 191376311
Не знаю
03:44:26 ПП
User 61043901
Зачем в урл шаблоне получать параметр?
Его можно взять из request.GET.get('page')
03:45:49 ПП
User 61043901
И при чем там уже к типу приведены значения, то есть если параметр будет передан в инте, то и тут будет сразу инт
03:46:51 ПП
User 191376311
Я пытался
03:47:03 ПП
User 61043901
User 191376311
А это ограничение накладывает, перед параметром page нельзя указывать другие параметры.
03:48:13 ПП
User 191376311
Я только 3й день учу django
03:48:58 ПП
User 191376311
User 61043901
Зачем в урл шаблоне получать параметр?
Его можно взять из request.GET.get('page')
Можно подробнее?
03:49:46 ПП
User 61043901
User 191376311
И int(page) при том что в page будет иметь не численное значение будет вываливать TypeError
03:50:12 ПП
User 61043901
User 191376311
Можно подробнее?
5 минут, к ноуту доберусь, опишу
03:50:32 ПП
04:15:22 ПП
User 61043901
User 191376311
Ок
а, стоп, с телефона не обратил внимание что там у тебя не /?page= а просто /page=

но все равно.
смотри, убери вообще пейдж из урл-паттерна

а во вьюхе сделай так:
page = request.GET.get("page", 1)

и тогда урл будет выглядеть к примеру так: http://example.com/book/1337?page=2

дальше, у тебя есть int(page)
если пейдж - стринг, получишь ошибку типа.
следовательно нужно это предотвратить.
if not isinstance(page, int):
    page = 1 # наприимер

можно еще лучше сделать:
if not isinstance(page, int):
    if isinstance(page, str) and page.isdigit():
        page = int(page)
    else:
        page = 1 # наприимер
то есть если пейдж все таки получился в стринге, но там только цифры (str.isdigit()) то только тогда приводить строку в инт.
04:16:56 ПП
User 61043901
остальное смотрю тебе в апйтон бегиннерс объясняют
04:17:08 ПП
User 61043901
поэтому повторяться думаю не стоит
04:17:21 ПП
User 107485588
try except же
04:18:26 ПП
User 61043901
User 107485588
try except же
это второй способ реализации
04:21:18 ПП
User 191376311
Спасибо, пытаюсь переварить это
04:22:17 ПП
User 61043901
User 191376311
Спасибо, пытаюсь переварить это
а с питоном сколько работаешь?
04:22:33 ПП
User 191376311
около 2х месяцев
04:22:43 ПП
User 191376311
но до такого ещё не доходило
04:23:14 ПП
User 191376311
В основном фронтом занимался
04:23:23 ПП
User 191376311
Решил в бек
04:23:50 ПП
User 191376311
Думаю после 11 класа пойти на работу питонистом
04:24:00 ПП
User 191376311
сейчас в 10
05:21:10 ПП
User 41737593
Друзья, подскажите, пожалуйста!
Вот есть в шаблоне переменная {{ mydate }}, например, 12.12.2016. Как рядом с ней вывести дату, которая будет ровно через месяц (в моем примере должно быть 12.01.2017)? Это вообще возможно или надо вторую дату в контекст перед рендерингом шаблона включать?
05:23:24 ПП
User 107485588
Формируй контекст в одном месте, а то потом задолбаешься править в разных местах
05:25:40 ПП
User 41737593
Надо ли вторую дату в контекст включать или ее динамически можно получить в шаблоне?
05:29:57 ПП
User 119702721
User 41737593
Надо ли вторую дату в контекст включать или ее динамически можно получить в шаблоне?
Посмотри https://docs.djangoproject.com/en/1.10/ref/templates/builtins/
Может там есть что-нибудь.
05:34:14 ПП
User 119702721
User 41737593
Надо ли вторую дату в контекст включать или ее динамически можно получить в шаблоне?
Проверь add.
05:38:11 ПП
User 18500084
Не вычисляйте ничего в шаблонах, добавьте переменную во вьюшку
05:39:48 ПП
User 41737593
User 119702721
Проверь add.
ну это понятно, что если это можно сделать, то нужно add применять. 
{{ mydate|add:one_month }}
А как этот one_month указать?
05:41:02 ПП
User 41737593
User 18500084
Не вычисляйте ничего в шаблонах, добавьте переменную во вьюшку
Я так уже и сделал. Но вопрос остается ))
05:41:29 ПП
User 18500084
это возможно
05:41:54 ПП
User 18500084
можно написать кастомный template tag, который будет вычислять
05:44:31 ПП
User 41737593
Ну это наоборот движение к усложнению кода... А мне интересно написать всего одно выражение в шаблоне, чтобы убрать пару строчек из views
05:46:26 ПП
User 119702721
@DamirN 
Как вариант:
Написать метод во вьюхе и вызывать его из шаблона
{{ view.date_with_added_month }}
Метод должен быть без аргументов (кроме self).
05:47:09 ПП
User 18500084
чем это проще сразу прокинутой переменной?)
05:49:56 ПП
User 119702721
User 18500084
чем это проще сразу прокинутой переменной?)
В некоторых случаях можно вообще выкинуть всю конструкцию
def get_context_data(...)
    context = super(...)
    context['new_date'] = self.get_new_date
    return context
И заменить её на вызов метода get_new_date из шаблона.
05:50:19 ПП
User 18500084
можно
05:50:28 ПП
User 18500084
много чего можно сделать :)
05:54:00 ПП
User 261260366
лучше видеть всю логику в одном месте. Воротить какой-то велосипед в темплейтах это какое-то говноедство.
05:54:30 ПП
User 107485588
можно еще сигналов добавить
05:54:36 ПП
User 107485588
будет вообще сказка
05:54:45 ПП
User 18500084
а проще переписать на нормальном php
05:54:56 ПП
User 107485588
плюсую
05:56:17 ПП
User 41737593
да там логики и нет :) нужно просто на странице указать период с ... по ...
логично указать только дату начала периода, если период всегда ровно месяц
или нет?
05:57:01 ПП
User 41737593
и главный вопрос в том, есть ли уже придуманный велосипед для этого
06:00:13 ПП
User 119702721
User 41737593
и главный вопрос в том, есть ли уже придуманный велосипед для этого
Кажется, нет. Есть только наоборот. Можно в шаблоне получить timedelta для двух дат. Template tagи timesince, timeuntil.
Если хочешь заморочиться, можешь глянуть их код и написать свой. Там будет похоже.
06:00:40 ПП
User 41737593
ладно, понял
Спасибо :)
06:24:15 ПП
User 107485588
User 41737593
да там логики и нет :) нужно просто на странице указать период с ... по ...
логично указать только дату начала периода, если период всегда ровно месяц
или нет?
большое заблуждение считать что он всегда ровно месяц)
11:07:33 ПП
User 230952777
Привет всем, кто чего может посоветовать по django для обучени?)
11:36:17 ПП
User 39597995
Хорошие туториалы для новичков это официальный 
https://docs.djangoproject.com/en/1.10/intro/
и этот https://tutorial.djangogirls.org/ru/
11:41:04 ПП
User 61043901
User 39597995
Хорошие туториалы для новичков это официальный 
https://docs.djangoproject.com/en/1.10/intro/
и этот https://tutorial.djangogirls.org/ru/
как по мне Django Girls туториал уже морально устарел
11:42:57 ПП
User 61043901
хотя.. для старта сгодится...
11:43:26 ПП
User 39597995
User 61043901
хотя.. для старта сгодится...
и я того же мнения