
Matz
05.06.2017
22:04:00
Друзья, а кто как реализовывал GenericIPAddressField, чтобы айпишник автоматически в админку записывался, при заполнении формы ?
Через миддлвары ?

Aleksey
05.06.2017
23:51:14
Давно с джангой не сталкивался, сейчас могет из коробки джоин двух произвольных таблиц сделать, и GROUP_CONCAT ?

Ilgiz
06.06.2017
03:46:23

Matz
06.06.2017
03:48:22

Google

Ilgiz
06.06.2017
03:49:19
сделай просто CharField и вручную бери ip address и сохраняй

Matz
06.06.2017
03:53:10
Я же написал, что вручную мне не надо. Пользователь заполяет форму и его ip пишется автоматически в бд.
Я нашел библиотеку django-ipware, но не разобрался как связать модель, вьюху и форму

Ilgiz
06.06.2017
03:54:30
скажи мне зачем юзать библиотеку ради пару строчек кода?
один метод который берет ip с request и один который иницилизирует ip адресс при рендере формы

Matz
06.06.2017
03:57:23

A
06.06.2017
04:05:51
Из реквестор можно дергать ip

Centrino
06.06.2017
04:38:29
Привет.
Нужно к модели добавить поле slug и сгенерировать его для каждой записи по правилу.
В миграциях есть возможность запускать свои функции.
Вопрос: нужно ли писать у slug (null=False, blank=False)? ведь будут проблемы - у старых записей нет значения.

Dan
06.06.2017
05:01:20
думаю да
после того как все slug будут заполнены можно накатить еще одну миграцию в которй убрать null=False, blank=False

Centrino
06.06.2017
05:03:38
читаю документацию.
Думаю попробовать через SchemaEditor поменять поле.
Зачем две миграции, если можно в одну попробовать)
или я слишком большую хитрость делаю)

Dan
06.06.2017
05:10:54
ну тут с одной стороны вроде как сделать правильно - круто
с другой стороны - а оно того стоит ? =)

Centrino
06.06.2017
05:12:59
конечно стоит.
Есть alter_field(), но что туда передавать пока не пойму

Google

Dan
06.06.2017
05:18:17
мне кажется тебе нужно посмотреть в сторону migrations.RunPython
def create_stripe_plans(apps, schema_editor):
# your code here
class Migration(migrations.Migration):
dependencies = [
('subscriptions', '0001_initial'),
]
operations = [
migrations.RunPython(create_stripe_plans, migrations.RunPython.noop)
]
это из живого сайта пример

Centrino
06.06.2017
05:26:58
спасибо, сейчас пишу миграцию

Alex
06.06.2017
08:03:00
Ребят, можете подсказать как формируется flatimage_set.all
именно название_set
Гуглил, но что то не понял.

Ruslan
06.06.2017
08:03:50
автомагически

Степан
06.06.2017
08:04:18
это название связанной модели в нижнем регистре + '_set'

Ruslan
06.06.2017
08:04:37
есть у тебя flatpage, на который через fk смотри flatimage, вот получил ты объект flatpage и через flatimage_set получаешь доступ ко всем привязанным к этому объекту flatimage

Alex
06.06.2017
08:05:15
Благодарю! Теперь понятно.

Hot
06.06.2017
08:25:58
А что у celery 4.0.2 с интеграцией с django?
А то походу вот этот https://pypi.python.org/pypi/django-celery/3.2.1 только для celery 3.x

Ruslan
06.06.2017
08:27:47
Я себе отложил автономный целери в репу, он работает всегда

Aleksey
06.06.2017
08:38:32
очень давно не пользовался celery, какой у него плюс перед manage.py задачами и cron?

Ruslan
06.06.2017
08:43:06
асинхронное выполнение задач
например у меня есть сервис по рендеру 3д печати, мне вгружают модель, я сохраняю её в хранилище и пускаю задачу в целери, как она отработает, я отдаю результат фронтенду

Igor
06.06.2017
08:54:51
Как отдается на фронт? Сокеты какие-то?

Ruslan
06.06.2017
09:08:11
да не, поллю периодически, у меня пока загрузка не очень большая

Hot
06.06.2017
09:13:45
Блин, не могу никак разнести по файлу celery.py в проекте и файлу tasks.py в приложении.

Google

Aleksey
06.06.2017
09:13:56

Hot
06.06.2017
09:14:05
В celery.py создаётся app, и по идее для добавления periodic_tasks нужен этот app в tasks.py
Относительный импорт это вроде как не ок тема.
Что бы @app.on_after_configure_connect декоратор работал.
Для функции, которая заполнит periodic tasks.

Alex
06.06.2017
10:13:16
Ребят, подскажите, почему конфликтуют два урла?
url(r'(?P<metro_slug>\S+)/$', views.metro, name='metro'),
url(r'(?P<cat_slug>\S+)/$', views.category, name='category'),
В чем ошибка регулярки?
1 перетягивает приоритет другой
Другогл

Dan
06.06.2017
10:14:08
у тебя они одинаковые
срабатывает первая

Alex
06.06.2017
10:14:48
Почему одинаковые? Вьюхи разные, слаг разный идентификатор

Dan
06.06.2017
10:15:13
url(r'^metro-(?P<metro_slug>\S+)/$', views.metro, name='metro'),
url(r'^category-(?P<cat_slug>\S+)/$', views.category, name='category'),
они ищут одинаковые условия
у обоих r'(?P<metro_slug>\S+)/$' одинаковая
и я бы не советовал использовать \S+
хотя зависит от задачи конечно
UPD: поправил регулярку

Alex
06.06.2017
10:19:17
А что если я не хочу использовать лишние префиксы типа metro-, category-. Какой выход?

Google

Aleksey
06.06.2017
10:20:52

Dan
06.06.2017
10:21:52
у тебя есть два урла
/foo
/bar
как понять какое куда болжно вести ?

Aleksey
06.06.2017
10:29:59
имхо, этого очень не хватает в дефолтном урл ресолве джанги

Dan
06.06.2017
10:30:20
я посмотрел
мне такой подход не очень нравится =)

Admin
ERROR: S client not available

Eugene
06.06.2017
10:30:48
можно упртся и проверять в get_object()

Dan
06.06.2017
10:30:49
нет в дефолтном такого точно не надо

Eugene
06.06.2017
10:32:21
(?P<slug_foo>\S+)
(?P<slug_bar>\S+)
через {% url передавать %}
ну и во views првоерять какой slug
но это жесть что-то

Dan
06.06.2017
10:32:57
конечно жесть

Aleksey
06.06.2017
10:33:43
да не, просто в Yii, если мне память не изменяет, такое поведени по дефолту
в джанге это убирает гибкость, т.е. админка для всяких сеошников и прочей нечисти становится неудобной)
урлы не поменяешь как хочется, плоские урлы невозможно нормально использовать
FlatPage для всего в плоском виде не хватает

Dan
06.06.2017
10:34:26
в том то и дело что для сеошников это полный кошмар

Aleksey
06.06.2017
10:35:05
почему?
разраб задал урл /moi-blog/ в котором что-то есть
после очередного анализа запросов появилась необходимость использовать урл /ego-blog/

Google

Aleksey
06.06.2017
10:35:56
и все, нам требуется разработчик
вместо того, чтобы поправить из админки это)

Eugene
06.06.2017
10:36:26
o.O
category
slug = models.SlugField()
не?

Aleksey
06.06.2017
10:37:05
т.е. смотри, у нас есть /ego-blog/ и /ego-photo/

Dan
06.06.2017
10:37:19
у тебя было две страницы которые отдавали 2 объекта foo и bar
foo удалил и теперь въюха отдает 404
по твоей логике
при заходе на url /foo или /bar всегда будет отдваться bar

Aleksey
06.06.2017
10:37:34
на одном уровне и мы хотим управлять слугами их обоих

Dan
06.06.2017
10:38:33
что приводит к дабл контенту и еще неприятным весчам

Eugene
06.06.2017
10:39:13
Ну так вынеси дочерние в модельку оо

Aleksey
06.06.2017
10:39:34
и да, я понимаю, что это будет менее производительно, чем сейчас.

Dan
06.06.2017
10:41:07
ну а почему тебе не реализовать тоже самое на стороне въюхи ?

Aleksey
06.06.2017
10:41:21
я пробовал :)

Dan
06.06.2017
10:41:36
и ?

Aleksey
06.06.2017
10:41:41
вьюха получается огромная и в итоге все сводится к тому, что ты просто делаешь свой ресолвер

Dan
06.06.2017
10:42:09
ты так же делваешь два метода
если первый ругнулся вызываешь второй
хотя сама логика для меня не понятна