@pydjango

Страница 244 из 1273
Eugene
25.04.2017
10:05:13
а если октрыть исходный код и попробовать октрыть файл, что будет?

Eugene
25.04.2017
10:06:30
а STATIC_DIRS

Google
Сергей
25.04.2017
10:06:50
Ребят, подскажите по celery-beat Celery настроил с Джангой, все норм. Поставил django-celery-beat, добавляю через админку таску print('Hello, World!') каждые 5 сек, запускаю celery -A myproject worker -l info потом в отдельной консоли celery -A myproject beat -l info -S django и тишина. только записи [2017-04-25 13:02:51,345: INFO/MainProcess] Writing entries... Что я делаю не так?

Maksim
25.04.2017
10:12:40
а STATIC_DIRS
на продакшине static dirs не нужны как в доках описывают

Dan
25.04.2017
10:17:22
какую?
а может и нет планируется что статика будет отдаваться nginx ? те после collectstatic если зайти на example.com/static_admin/some/file.css должо отдаться если не отдается то не правильно настроен nginx

Ruslan
25.04.2017
10:34:07
смотри как я в апаче делаю: <Directory "<ПУТЬ ДО ОКРУЖЕНИЯ>/src/django/contrib/admin/media"> Order allow,deny Allow from all </Directory>

Alias /admin/media/ "<ПУТЬ ДО ОКРУЖЕНИЯ>/src/django/contrib/admin/media/"

и всё

Сергей
25.04.2017
12:35:23
всем привет. не получается подружить django autocomplete light с django-jet. с граппели автокомплит работал. подключил jet, убрал граппели, выдает: $(...).select2 is not a function django 1.6, django-autocomplete-light==3.2.2, django-jet==1.0.5

amureki
25.04.2017
12:40:30
он тебе ругается, что не может select2 найти при загрузке странички

посмотри, доступна ли либа и правильный ли на странице путь, где она вызвается

Сергей
25.04.2017
12:41:36
404х не вижу. а как посмотреть?

jet видимо переопределил какие-то спкрипты

amureki
25.04.2017
12:43:00
дак открой хтмл-код итоговой страницы, да найди где оно вызвается, открой руками :)

Google
Сергей
25.04.2017
12:43:08


amureki
25.04.2017
12:43:14
если доступна - могжет проблема в том что конфликтует как-то оно или вызвается два раза



ну и жиквери там пару раз в нагрузку вызывается, мусорно

Сергей
25.04.2017
12:44:47
$(this).select2({ - в файле select2.js

amureki
25.04.2017
12:47:10
нужно решить проблему с множественными загрузками, а в самом селект2 я почти на 100% уверен все нормально

.
25.04.2017
13:41:59
Гайс, нужно написать тест, где я передаю данные в 3 поля и получаю результат поиск. Возникла проблема с одним полем. forms.FilePathField(path=settings.var, match='.*\.yml$', widget=forms.Select(attrs={'class': 'need-select2'}))Путь мы берем из сеттинга, при написании теста, мне это значение не очень подходит, поэтому в тесте я импортирую settings и меняю эту переменную. Но при отправке запроса, поле не проходит валидацию, в чем проблема может быть?

Сергей
25.04.2017
13:44:10
какая ошибка валидации?

.
25.04.2017
13:44:11
P.S. в тесте создаю нужный мне файл по нужному мне пути, а потом передаю этот путь в это поле

playbook = form.cleaned_data.get('playbook') пустой после валидации

amureki
25.04.2017
13:52:47
тесты без применения pytest, я так полагаю?

не уверен что это правильный путь, просто импортить сеттингс (кстати, как он у тебя импортируется?), но не знаю как в обычных тестах это резолвится

в pytest это очень просто, settings - как еще одна фикстурка, меняй как хочешь: http://pytest-django.readthedocs.io/en/latest/helpers.html#id3

.
25.04.2017
13:57:04
Pytest не юзаю. Импортирую django.conf import settings

пойду почитаю про pytest

amureki
25.04.2017
13:58:24
https://docs.djangoproject.com/en/1.11/topics/testing/tools/#overriding-settings

parikLS
25.04.2017
13:58:33
почитай про unittest.mock

amureki
25.04.2017
13:58:46
лол, надо просто погуглить и не выдумывать проблем

parikLS
25.04.2017
13:58:48
для начала

amureki
25.04.2017
13:58:50
сразу дока вылезла

Google
.
25.04.2017
14:00:52
Погуглить действительно стоило, спасибо)

Изменение настроек не помогло

amureki
25.04.2017
14:31:06
в функции перед использованием переменной из настроек делаем import pdb; pdb.set_trace() далее запускаем тест, когда остановится на бряке, деалем settings.MY_VAR смотрим, что кажет

.
25.04.2017
14:34:23
*** NameError: name 'settings' is not defined

импортнуть сеттинг?

Centrino
25.04.2017
14:34:53
да

amureki
25.04.2017
14:35:13
а как он не импортнут прямо перед самым его использованием? не совсем понятно

from django.conf import settings def my_cool_function(): foo = 1 import pdb; pdb.set_trace() # here we are breaking, type settings.BAR and check output bar = settings.BAR

.
25.04.2017
14:39:35
Скорее всего я чего-то не понимаю, попробую объяснить еще раз. У меня есть форма из 3 полей, я в тесте пытаюсь передать значения этим 3 полям и получить ответ вьюхи. При передачи одного из значений полю, у меня форма не проходит валидацию. Вот это поле playbook = forms.FilePathField(path=settings.var, match='.*\.yml$', required=False, widget=forms.Select(attrs={'class': 'need-select2'}))Переменную из сетинга в тесте я не использую, но мне вроде нужно её изменить, чтобы у меня path у формы изменился на нужный мне и поле с моим значение проходило валидацию. Щас импортнул pdb, выдает нужное мне значение, но валидация все равно не проходится \

amureki
25.04.2017
14:40:29
ну вот валидация - это что? функция, можно ее заоверрайдить и добавить туда брейкпоит и посмотреть данные

.
25.04.2017
14:41:40
Валидация это во вьюхе я вызываю form.is_valid()

Я попробовал подебажить немного, в response в cleaned_data моего playbook нет

amureki
25.04.2017
14:43:09
воот, смотри, ты можешь залезть в is_valid(), в то место где оно конкретно падает, поставить там брейкпоинт, посмотреть чего не хватает

ну и так лезем вверх, пока не докапываемся до правды

ну и ты не показал сам тест, неясно, как ты туда эти значения прокидываешь, может и не в settings совсем дело

.
25.04.2017
14:52:17
@override_settings(ANSIBLE_PLAYBOOKS_PATH='/tmp/playbooks/', ANSIBLE_WORK_DIR='/tmp/') def test_get_queryset(self): create_data_for_search() os.mkdir('/tmp/playbooks') f = open('/tmp/playbooks/main.yml', 'w') f.write('test') self.client.force_login(user=self.user) response = self.client.get(reverse('task_search'), {'template': '2','playbook': '/tmp/playbooks/main.yml', 'status': 'fail'}) self.assertEqual(len(response.context['object_list']), 1) shutil.rmtree('/tmp/playbooks')Вот сам тест, пока не понял, как задежабить форм из валид во вьюхе, на выполнении теста

create_data_for_search это я просто создаю данные

parikLS
25.04.2017
14:57:37
а f.close() не нужно делать?

у тебя файл пустой будет

если его не закроешь

Google
Dan
25.04.2017
14:59:21
лучше использовать with

.
25.04.2017
14:59:27
Надо, но это не решает проблему. Проверял, не пустой

Dan
25.04.2017
14:59:27
он сам закроет

parikLS
25.04.2017
15:00:06
как проверял?

.
25.04.2017
15:00:43
у меня на этом тесте все падает, соотвественно shutil не удаляет ничего, можно открыть файлик и посмотреть

parikLS
25.04.2017
15:01:15
соответсвенно процесс пайтона завершается и файл закрывается

а в контексте выполнения процесса - файл пустой

Eugene
25.04.2017
15:01:37
я формы чаще всего проверяю как-то так: def test_blank_name_form(self): form = NameForm({}) self.assertFalse(form.is_valid()) self.assertEqual(form.errors, {'eror': 'eroro'})

Admin
ERROR: S client not available

Eugene
25.04.2017
15:02:18
create_data_for_search это я просто создаю данные
Посмотри через debug toolbar как отправляется файл

.
25.04.2017
15:02:30
смотрел

Не совсем понял к чему тут тест на форму, это тест на поиск объектов)

Артемий
25.04.2017
15:07:54
Пишу для админки экшен, возник вопрос, что передаётся в метод, если я выбираю 1 объект? Список с длинной 1 или сам объект?

def send_messages(self, request, queryset):

а все, разобрался

parikLS
25.04.2017
15:21:33
ты клоуз вызвал на файле?

или виз

.
25.04.2017
15:23:20
вызывал

Google
Сергей
25.04.2017
16:12:20
мини-костыль - добавил ```app.conf.beat_schedule = {'dummy-task':{ 'task': 'celery.dummy', 'schedule': 60*60*24*365} }

и после этого beat увидел все таски, добавленные через админку. Что-то с инициализацией не так. вроде все по доке (

Eugene
25.04.2017
16:16:01
Кстати, вспомнил делал тест с файлом, мутил через with open

Dmytro
25.04.2017
16:16:20
Создал файл celery, в init добавил строчку?

Сергей
25.04.2017
16:18:13
# __init__.py from __future__ import absolute_import # This will make sure the app is always imported when # Django starts so that shared_task will use this app. from .celery import app as celery_app

Romka
25.04.2017
17:42:45
Всем привет

Для обработки 404 и 500 ошибок будет достаточно в urls.py главного приложения добавить это? handler404 = curry(page_not_found, exception=Exception('Page not Found'), template_name='page-statuses/404.html') handler500 = curry(server_error, template_name='page-statuses/500.html')

или его нужно добавлять в каждое приложение?

Anb
25.04.2017
17:57:00
фигзнает

верни ошибку в приложении

Matz
25.04.2017
18:01:19
Всем привет
Привет. Ты описал Customizing error views. Тут можно более подробно прочитать: https://docs.djangoproject.com/en/1.11/topics/http/views/#the-http404-exception

Константин
26.04.2017
04:39:58
Всем салют. Пытаюсь развернуть тестовый сервер отдельный, переношу БД с помощью manage.py loaddata и выбрасывает ошибку "value too long for type character varying(80)" Как этот лимит безболезненно поднять? Базу можно ковырять как угодно, она не будет с продом синхронизоваться

Anb
26.04.2017
05:53:56
Зачем?)

Сделай дамп на тестовом/прод и залей себе

mysqldump pgdump

Pavel
26.04.2017
06:25:48
https://www.twoscoopspress.com/products/two-scoops-of-django-1-11 1.11 вышла пару недель назад, а Two Scoops уже книгу про неё выдали.

Ruslan
26.04.2017
06:26:51
Писать начинали видимо ешё задолго до релиза :)

Pavel
26.04.2017
06:27:39
Хотелось бы на дифы посмотреть 1.6 -> 1.8 -> 1.11

Артем
26.04.2017
06:44:57
{{date| date:"d.m.Y"}} — Народ кто сталкивался, в django 1.11 перестали работать фильтры. В дока вроде ничего такого не нарыл (( Или проглядел. Если кто знает подскажите плиз или направте краба)))

Andrey
26.04.2017
07:10:46
{{date| date:"d.m.Y"}} пробел

Страница 244 из 1273