@pydjango
Django

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

1741 members

Архив канала @pydjango 26 января 2017 г.

04:15:48 ДП
User 188924529
User 191376311
как русифицировать form.errors в django?
В классе форме можно сделать с error_messaages
04:18:58 ДП
User 188924529
User 188924529
В классе форме можно сделать с error_messaages
email = forms.EmailField(error_messages = {
      'required': "Loginni kiritish talab etiladi",
      'invalid':"Elektron pochta noto'g'ri kiritildi."
    })
  password = forms.CharField(widget=forms.PasswordInput, error_messages = {
      'required': "Parolni kiritish talab etiladi",
      'invalid':"Parol noto'g'ri kiritildi."
    })
12:42:15 ПП
User 149595952
Ребят, а кто чем визуализирует данные?
01:05:46 ПП
User 105393634
привет. Подскажите, для Class Based View есть шпаргалки-схемы в каком порядке выполняются функции?

Хочу выполнить действие при создании объекта. CreateView, но уже когда сам объект создан в бд. То есть связать его с другим объектом. В какой функции это сделать?
01:06:30 ПП
User 158695346
User 105393634
привет. Подскажите, для Class Based View есть шпаргалки-схемы в каком порядке выполняются функции?

Хочу выполнить действие при создании объекта. CreateView, но уже когда сам объект создан в бд. То есть связать его с другим объектом. В какой функции это сделать?
http://ccbv.co.uk
ccbv.co.uk
The best way to understand Django's class-based views is to see it in Classy CBV, so pick your version and jump in at the deep end.
01:06:50 ПП
User 158695346
начинать с dispatch (ну или сразу get\post) нужного класса - и вперёд
01:07:09 ПП
User 105393634
dispatch это что?
01:07:35 ПП
User 158695346
User 105393634
dispatch это что?
def dispatch() в каждом классе, с него начинается обработка запроса
01:08:42 ПП
User 158695346
эта функция выбирает тип запроса (get\post\head ...) и вызывает нужный метод (def get(), def post(), def head() и т.п.)
01:08:54 ПП
User 105393634
за ссылку спасибо. Но я таки и не понял что с этой функцией делать)
01:09:10 ПП
User 158695346
открывать её код и читать
01:09:36 ПП
User 158695346
а, есть вторая половина вопроса, не заметил.
01:10:41 ПП
User 158695346
я бы в form_valid сделал нужное.
01:11:20 ПП
User 105393634
в form_valid уже явно проведена валидация формы?
01:11:56 ПП
User 158695346
и даже в self.object сохранён объект.
01:12:10 ПП
User 105393634
спасибо
01:12:57 ПП
User 158695346
а валидация формы проходит в def post()
01:13:33 ПП
User 105393634
User 158695346
а валидация формы проходит в def post()
def post() я думал остался со времен до CBV
01:15:28 ПП
User 158695346
ээ...
 class MyView(View):
    def get(self, request, *a, **kw):
        ... # будет вызван при GET
    def post(self, request, *a, **kw):
        ... # будет вызван при POST
    def head(self, request, *a, **kw):
        ... # будет вызван при HEAD
    def put(self, request, *a, **kw):
        ... # будет вызван при PUT
    # и так далее
01:25:01 ПП
User 5986663
Бодрого времени суток. Shuup или oscar? Или голая джанга? Есть ли в shuup мультидоменность?
02:12:53 ПП
User 120578100
User 105393634
привет. Подскажите, для Class Based View есть шпаргалки-схемы в каком порядке выполняются функции?

Хочу выполнить действие при создании объекта. CreateView, но уже когда сам объект создан в бд. То есть связать его с другим объектом. В какой функции это сделать?
в методе save() самой модели
05:38:19 ПП
User 939161
добрейшего вечерочка, уважаемые! :)
05:42:04 ПП
User 939161
давно задаюсь одним вопросом, под каким пользователем деплоить код на сервере, под каким запускать приложение, под каким ходить по ssh (если нет автоматизированного деплоя). как будет более правильным, кошерным (если хотите), судя по всему единых стандартов на этот счет нет, вот и хотелось бы услышать разные мнения…
05:57:47 ПП
05:58:09 ПП
User 95684197
У меня - так. На AWS 😀
05:58:56 ПП
User 72748600
Правильно под каждый проект пользователя заводить
06:01:21 ПП
User 939161
и запускать из под него тоже?
06:02:46 ПП
User 95684197
Запускать лучше из под пользователя, не имеющего доступ к sudo
06:03:26 ПП
User 939161
www-data?
06:06:49 ПП
User 95684197
Ну, можно и так
08:14:48 ПП
User 939161
кстати, кто что может посоветовать либу для импорта из excel и обратно?
08:16:55 ПП
User 194990550
https://django-import-export.readthedocs.io/en/latest/
08:18:49 ПП
User 191376311
всем привет
08:19:31 ПП
User 191376311
Как в ajax запросе передать переменную context_processors - {{ variable }}
08:19:36 ПП
08:20:26 ПП
User 939161
напиши вызов в шаблоне и подставь туда переменную
08:20:50 ПП
User 939161
User 194990550
https://django-import-export.readthedocs.io/en/latest/
2 звезды на гитхабе, сомнительно...
08:20:50 ПП
User 194990550
через js в post передать, нет?:)
08:21:13 ПП
User 194990550
https://github.com/django-import-export/django-import-export
github.com/django-import-export/django-import-export
Django application and library for importing and exporting data with admin integration. - django-import-export/django-import-export
08:21:20 ПП
User 191376311
User 939161
напиши вызов в шаблоне и подставь туда переменную
<a class="ui tag label liked-tag" user="{{ user.username }}" book="{{ book.id }}" id="liked-tag">Избранное</a>
08:21:20 ПП
User 194990550
форк походу кинул.
08:21:24 ПП
08:21:37 ПП
User 191376311
User 194990550
через js в post передать, нет?:)
нет
08:21:41 ПП
User 191376311
только get
08:22:12 ПП
User 191376311
Traceback (most recent call last):
  File "/usr/lib/python3.6/site-packages/django/core/handlers/exception.py", line 39, in inner
    response = get_response(request)
  File "/usr/lib/python3.6/site-packages/django/core/handlers/base.py", line 187, in _get_response
    response = self.process_exception_by_middleware(e, request)
  File "/usr/lib/python3.6/site-packages/django/core/handlers/base.py", line 185, in _get_response
    response = wrapped_callback(request, *callback_args, **callback_kwargs)
  File "/home/spike/Desktop/tReader/treader/readerBook/views.py", line 137, in set_liked
    user_id = int(request.GET['user_id'])
  File "/usr/lib/python3.6/site-packages/django/utils/datastructures.py", line 85, in __getitem__
    raise MultiValueDictKeyError(repr(key))
django.utils.datastructures.MultiValueDictKeyError: "'user_id'"
08:22:25 ПП
User 191376311
это если подставлять
08:24:13 ПП
08:25:26 ПП
User 101775819
А у тебя в url не надо указать id?
08:25:46 ПП
User 939161
User 194990550
форк походу кинул.
а оно только из админки работает?
08:26:30 ПП
User 191376311
User 101775819
А у тебя в url не надо указать id?
нет, вот такой запрос работает http://127.0.0.1:8000/set_liked/?user_id=1&book_id=3
08:26:40 ПП
User 194990550
мне ток в админке надо было.
но там вроде можно кастомизировать.
08:26:40 ПП
User 194990550
а оно только из админки работает?
08:26:43 ПП
User 191376311
если напрямую
08:27:07 ПП
User 194990550
а в view как проверяешь get параметры
08:30:37 ПП
User 194990550
могу показать, как я лайки реализововал
08:31:44 ПП
User 191376311
ну это тип понравившиеся книги
08:32:47 ПП
User 191376311
и мне просто нужно передать id юзера и книги
08:32:51 ПП
User 191376311
а оно не хочет
08:36:09 ПП
User 194990550
а во view принтом выведи user_id и book_id , что выдаст
08:36:35 ПП
User 158695346
я бы для начала в network monitor браузера посмотрел, что уходит.
08:40:28 ПП
User 191376311
User 194990550
а во view принтом выведи user_id и book_id , что выдаст
http://pastebin.com/CpBfugX6
08:41:12 ПП
User 194990550
KeyError: 'user_id' :) а попробуй без int
08:41:57 ПП
User 158695346
User 194990550
KeyError: 'user_id' :) а попробуй без int
зачем, у него до вызова int дело не доходит.
08:42:22 ПП
User 191376311
User 158695346
я бы для начала в network monitor браузера посмотрел, что уходит.
а что именно?
08:42:34 ПП
User 158695346
как выглядит урл, на который уходит запрос
08:42:39 ПП
User 191376311
смотрю liked.js
08:43:20 ПП
08:43:23 ПП
User 191376311
Request URL:http://127.0.0.1:8000/set_liked/
Request Method:GET
Status Code:500 Internal Server Error
Remote Address:127.0.0.1:8000
08:44:02 ПП
User 158695346
User 191376311
Request URL:http://127.0.0.1:8000/set_liked/
Request Method:GET
Status Code:500 Internal Server Error
Remote Address:127.0.0.1:8000
ну и вот, в запросе нет параметров. тебе в чат жаваскриптеров. 😊
08:44:35 ПП
User 191376311
ок, спасибо
08:45:10 ПП
User 191376311
а можно как-то передать данные context processors в запрос?
08:45:36 ПП
User 191376311
я прост кажись понял в чём проблема
08:46:17 ПП
08:46:20 ПП
User 191376311
не понял
08:46:22 ПП
08:46:24 ПП
User 194990550
юзер id же скорей всего всегда реквестом будет?: )
08:46:31 ПП
User 194990550
request.user
08:46:39 ПП
User 158695346
если ты переменную из контекста где-то в шаблоне оставишь, то она срендерится в своё значение, и потом её из html забирай, как умеешь.
08:46:46 ПП
User 191376311
спасобо
08:46:51 ПП
User 194990550
или если я сменю в ссылки get то другому челу уйдет?
08:46:53 ПП
User 191376311
спасибо*
08:47:14 ПП
User 191376311
я просто уберу user_id
08:47:55 ПП
User 158695346
убери, но всё равно book_id в урле не было. 😞
08:48:43 ПП
User 191376311
о, стоп
08:49:07 ПП
User 191376311
книга лежит по адресу http://127.0.0.1:8000/book/2/
08:49:30 ПП
User 191376311
можно из него вытянуть /2/?
08:50:15 ПП
User 158695346
можешь сделать урл /book/2/like, и тогда вообще с request.GET не связываться.
08:50:36 ПП
User 158695346
в жаваскрипте относительный путь  "./like"
08:51:30 ПП
User 191376311
/book/2/like - мне нужно без редиректа
08:51:49 ПП
User 158695346
Но это так себе вариант, я бы разобрался, почему в том запросе не было параметров. Сейчас можно обойти передачу параметров в ajax, но возможно в другом месте так уже не получится.
08:52:17 ПП
User 158695346
User 191376311
/book/2/like - мне нужно без редиректа
редиректа и не будет.
08:52:34 ПП
User 191376311
можно пример?
08:52:42 ПП
User 191376311
я прост не понимаю
08:52:52 ПП
User 194990550
а почему не POST запрос?: )
08:53:07 ПП
User 194990550
ну ты просто ajax запрос  делаешь  и все.
08:53:11 ПП
User 194990550
никаких редиректов.
08:53:30 ПП
User 191376311
у меня с ним такая  же проблема
08:54:53 ПП
User 194990550
$.ajax({
            url: likeUrl,
            type: 'POST',
            data: {
                book_id: book_id,
            },
            success: (json) => {
08:54:55 ПП
User 158695346
на странице /book/2/ делаешь $.ajax(url:"./like", method:'POST) ( или как-то так, я не умею в JS).
прописываешь урлс.py /book/(.*?)/like, ведущий на твой метод. и всё.
08:56:33 ПП
User 107485588
User 194990550
а почему не POST запрос?: )
+1 за пост
08:57:37 ПП
User 101775819
Еще можно именованный параметр user_id в urlе прописать, а во вьюхе просто из него смотреть
08:59:20 ПП
User 107485588
я только не могу понять, зачем юзер айди в урле (теле), если юзер есть в request.user ?
08:59:39 ПП
User 191376311
User 107485588
я только не могу понять, зачем юзер айди в урле (теле), если юзер есть в request.user ?
уже изменил
08:59:42 ПП
User 101775819
На самом деле, да
09:00:41 ПП
User 107485588
а дальше, как Паша написал
09:01:45 ПП
09:01:54 ПП
User 191376311
почему? `Not Found: /book/2/like
[26/Jan/2017 23:01:32] "POST /book/2/like HTTP/1.1" 404 3979
`
09:02:16 ПП
User 107485588
урлс покажи
09:02:19 ПП
User 158695346
urls.py неправильный
09:02:37 ПП
User 191376311
url(r'/book/(?P<pk>[0-9]+)/like/$', views.set_liked, name='set_liked'),
09:02:51 ПП
User 107485588
слеш в конце
09:03:17 ПП
User 191376311
без него тоже самое
09:03:20 ПП
User 158695346
User 107485588
слеш в конце
append_slash разве не работает не POST запросах?
09:03:39 ПП
User 158695346
скорее /book/ в начале лишнее. покажи весь urls.py
09:03:40 ПП
User 107485588
вроде не
09:04:13 ПП
User 194990550
еще можно насильно post_required прописать
09:04:14 ПП
User 101775819
Немного оффтоп для этого чата: какой есть js фреймворк похожий на django-style? Чтобы одному можно было педалить и без оверхеда.
09:04:31 ПП
User 191376311
User 158695346
скорее /book/ в начале лишнее. покажи весь urls.py
+
09:04:46 ПП
User 126848884
User 101775819
Немного оффтоп для этого чата: какой есть js фреймворк похожий на django-style? Чтобы одному можно было педалить и без оверхеда.
backbone, но вы замучаетесь даже в связке с marionette
09:05:24 ПП
User 126848884
Но если вы хотите максиамльно простых концепций, без реактовских store enchancers и stare rehydration, он норм.
09:05:33 ПП
User 101775819
А то надоело на голом jquery сидеть)
09:05:37 ПП
User 191376311
хух, работает
09:05:45 ПП
09:05:51 ПП
User 191376311
большое спасибо всем
09:06:10 ПП
User 126848884
User 194990550
vue js :)
Сгиньте) Человек просил чтобы без дурки))
09:06:51 ПП
User 194990550
Вроде всего его и хвалят лайтовым, да и дока на русском есть:)
09:07:55 ПП
User 101775819
Язык доки не важен. Важно, чтобы хоть какая-то архитектура была и ui обновлялся сам.
09:08:50 ПП
User 194990550
ну это явно какой-то фрейм. Вот на vue посмотри)
09:09:20 ПП
User 101775819
Реакт многие хвалили, насколько он сложнее backbone?
09:09:43 ПП
User 292262171
привет всем, увидел что vue обсуждается, изучаю его сейчас, как думаете перспективная штука ?
09:10:01 ПП
User 292262171
нужно просто вьюхи делать на сайтах
09:10:35 ПП
User 126848884
User 101775819
Реакт многие хвалили, насколько он сложнее backbone?
Он просто другой. Реакт — это не фреймворк, это морду рисовать.
09:10:35 ПП
User 194990550
Я вот стал на angular смотреть. Потихоньку стал изучать и пробовать.  Сразу все есть, наподобие Django :D + MVC .
А реакт и другие библиотеки все по кусочкам собирать.
09:13:10 ПП
User 126848884
Долго можно рассуждать, не буду, чат-то про Django =) Коротко: хотите просто —  backbone, хотите некисло так поломать голову, но получить на мой взгляд более атомарный что ли инструмент — реакт + redux
09:13:21 ПП
User 126848884
Я использовал и то и то
09:13:46 ПП
User 126848884
С React мне весело так как бекенд чаще всего на Node.js и там можно доволено весело шарить код.
09:16:13 ПП
User 126848884
Я jQuery я бы точно посоветовал уходить, если +- какая-то логика есть. Недавно приятель попросил накидать несложный проект «без твоих этих реакторв и этих докеров, мне попроще». Я подумал, ну сделаю на jQuery. Первая же галерея меня свела с ума.

Пришлось колхозить что-то похожее на React-компоненты. Классы, методы, конструкторы и самопяльную привязку к DOM. Все проклял (и моего товарища-ретрограда заодного обругал), ггг.
09:17:07 ПП
User 126848884
Коллеги, это похоже бот, спамит по всем чатам.
09:17:29 ПП
User 101775819
Однозначно. Банхаммер нужен
09:19:20 ПП
User 101775819
За инфу спасибо. Поковыряю в сторону реакта и вью
09:32:39 ПП
User 18500084
@lorddaedra пс
10:59:12 ПП
User 120578100
+ за вью
11:00:59 ПП
User 200200555
User 126848884
Я jQuery я бы точно посоветовал уходить, если +- какая-то логика есть. Недавно приятель попросил накидать несложный проект «без твоих этих реакторв и этих докеров, мне попроще». Я подумал, ну сделаю на jQuery. Первая же галерея меня свела с ума.

Пришлось колхозить что-то похожее на React-компоненты. Классы, методы, конструкторы и самопяльную привязку к DOM. Все проклял (и моего товарища-ретрограда заодного обругал), ггг.
А что не так с ЖКЮРИ? 
Вроде с задачами типа слайдов, тоглов и удобного нахождения и обработки некоторых событий на элементах справляется
11:08:00 ПП
User 126848884
Когда она тупая — да. Когда сам нужно создать множество интансов галерей, у каждого множество событий которые должны дергать что-то «извне», возникает целый ряд проблем: 1) как доступаться до нужных элементов DOM? При +- сложной верстке вы не обойдетесь селектором .class id 2) что делать если галереря инкапсулиет в себя кучу логики? Например, у меня галерея автоматически подгружала изображения, считала размеры, и выстраивала коллажи. Можно продолжать, но уже этоих двух пунктов достаточно.

Разумеется, написать можно. Я выкрутился самопальным классом с «конструкторами», методом render(), несколькими приватными методами и навешанными листнерами. Полученные инстансы Gallery сохраняли ссылки на свои DOM обхекты, умели рендерить переданный JSON и неплохо так управлялись с событиями.

Все это — адовый говнокод. Стоило использовать React или любой другую component-based либу, и все было бы прекрасно.
11:10:23 ПП
User 200200555
User 126848884
Когда она тупая — да. Когда сам нужно создать множество интансов галерей, у каждого множество событий которые должны дергать что-то «извне», возникает целый ряд проблем: 1) как доступаться до нужных элементов DOM? При +- сложной верстке вы не обойдетесь селектором .class id 2) что делать если галереря инкапсулиет в себя кучу логики? Например, у меня галерея автоматически подгружала изображения, считала размеры, и выстраивала коллажи. Можно продолжать, но уже этоих двух пунктов достаточно.

Разумеется, написать можно. Я выкрутился самопальным классом с «конструкторами», методом render(), несколькими приватными методами и навешанными листнерами. Полученные инстансы Gallery сохраняли ссылки на свои DOM обхекты, умели рендерить переданный JSON и неплохо так управлялись с событиями.

Все это — адовый говнокод. Стоило использовать React или любой другую component-based либу, и все было бы прекрасно.
Ну ладно, я с такими сложгыми задачами не стыкался, не знаю. 
Спасибо за объяснение
11:10:38 ПП
User 126848884
То есть еще раз: когда вы рабоатете на уровне DOM (аддкласс, ремувкласс, селектор-онклик) вообще норм) Но не когда вынуждены писать некое подобие компонента SPA-приложения.
11:10:57 ПП
User 126848884
User 200200555
Ну ладно, я с такими сложгыми задачами не стыкался, не знаю. 
Спасибо за объяснение
Станислав, отнюдь, задача не сложная. Инструмент неподходящий)
11:12:00 ПП
User 200200555
User 126848884
Станислав, отнюдь, задача не сложная. Инструмент неподходящий)
Максимум что я писал - сайдбары с слайдами туда сюда, и некоторыми простыми анимашками с элементами. 
Не умею я в фронтенд