
Dan
21.03.2018
16:19:34

Lazoreth
21.03.2018
16:20:00
У меня теперь список фильтрации больше списка авто на странице :D

Dan
21.03.2018
16:20:32

Lazoreth
21.03.2018
16:20:42
Ну да, чёт жёстко

Google

Lazoreth
21.03.2018
16:20:56
Ну надо как-то удобный фильтр сделать
Поиском не всё выводится почему-то
А есть более разумные варианты?

Dan
21.03.2018
16:23:53
мне кажется в поиск надо выводить

Сергей
21.03.2018
16:27:49

Lazoreth
21.03.2018
16:32:42
Поставил django-admin-list-filter-dropdown
Вроде норм штука, и грузится быстро

Senpos
21.03.2018
16:33:40
Вот это название длинное :)

Dan
21.03.2018
16:35:53
надо было грапелли поставить
у них вроде по дефолту фильтры в селектах

Lazoreth
21.03.2018
16:42:10
Обязательно почитаю что за зверь такой, пока вкладочку оставил
Щас этого хватит что бы продолжать работать
Там список ещё надо будет ужать до 800 штук где-то в следующей итерации синхронизации
А то я чёт всю базу перегнал

Google

Lazoreth
21.03.2018
16:44:39
Щас просто надо модель бд настроить нормально
Всё равно не удобно выпадающей менюшкой, даже при 800 клиентах не удобно будет
Надо какой-то автозавершающийся поиск, но это наверное уже во фронтенд, сомневаюсь что такие плюшки есть в виде готовых пакетов
"You can look into django-grappelli, which is an app that enhances the admin interface. The documentation describes an autocomplete for ForeignKey or ManyToMany relationships, using raw_id_fields."
Хм
и select2 вроде тоже умеет


Гийденко
21.03.2018
20:37:53
вопрос!
1. Есть домен, например example.com
На нём организован сервер на джанго (контейнер в докере) а в нем авторизация юзеров.
2. Есть поддомен, например sub.example.com
На нём так же отдельный джанго сервер (контейнер) крутится.
Задача: сделать авторизацию общей! То есть если я залогинился на домене и зашел на поддомен чтобы авторизация не слетала и использовалась с основного сервера, с теми же правами.
Как такое сделать лучше всего? Может есть готовые батарейки?
может через общие таблицы в базе или через id сайтов както решается? Я еще не сталкивался с таким

Artem
21.03.2018
21:49:51
single sign on гугли)

Гийденко
21.03.2018
21:52:24
я уж подумал делать один сервер для нескольких доменов с взодом с разных сторон) но пока умозрительные попытки

Artem
21.03.2018
21:53:13
для джанго есть готовые решения, но я не юзал, не могу про них ничего сказать

Гийденко
21.03.2018
21:53:28
ага, уже парочку открыл, смотрю

Dan
22.03.2018
01:45:59

Sanchez
22.03.2018
01:54:02
project
/project
/landing
/static
+/assets/
+style.css
/templates

Andrey
22.03.2018
01:55:42

Sanchez
22.03.2018
02:01:05
да, может из-за того что в шаблоне путь указан не так как нужно в django
<link rel="stylesheet" href="assets/bootstrap/css/bootstrap.min.css">
а в том котором стили отрабатывают написано:<link rel="stylesheet" href="{% static 'style.css' %}">

Andrey
22.03.2018
02:05:16
Да, вроде, именно из-за этого

Google

Andrey
22.03.2018
02:05:21
Ребят, есть вопрос:
Можно ли как-то сделать prefetch\select_related при отработке to_representation у сериализатора?
Кейс: POST запрос на create, создаю объект, к которому привязываю ещё пару побочных, и сразу хочу его вернуть.
{
items: [
{
sub_item: {
arg: value,
}
} ,
...
]
}
Из-за вложенности, джанга делает много запрсов на каждый такой итем. В обычной ситуации, я вещаю на queryset prefetch\select в зависимости от связей, но как быть тут? Ведь у нас нет queryset-а, есть только один объект в сериализаторе верхнем (3 уровня, всё через NestedSerializers(many=True))
Структура сериализаторов (схематично):
{
class OneSerializer():
class TwoSerializer():
class ThreeSerializer():
args...
}
Подсказали решение:
def perform_create(self, serializer):
serializer.save()
item_with_all = Item.objects.filter(pk=serializer.instance.pk).prefetch_related(...)
serializer.instance = item_with_all.first()
Работает. 13 запросов сократились до 3
13 - непостоянное число. 4n + 1


Lazoreth
22.03.2018
03:32:34
А как вообще правильно реализуется поиск с автозавершением?
Если у нас 5к наименований а аякс будет постоянно базу дёргать долго же будет работать, не?

Dan
22.03.2018
03:41:40

Lazoreth
22.03.2018
03:42:28
В идеале я так понял ещё надо всё это в ОЗУ держать

Dan
22.03.2018
03:42:42
кстати 5к не так много для базы

Lazoreth
22.03.2018
03:43:50
У меня база пока sqlite файловая, работает достаточно медленно
Так для теории спрашиваю, сегодня на sqlite ещё всё переносить
ой, чё я несу
в общем на настоящий sql

Dan
22.03.2018
03:45:05
перенос в 3 команды делается
какието базы умеют держать что то в оперативной памяти надо почитать

VIKTOR
22.03.2018
04:24:12
Добрый день!
Подскажите пожалуйста советом, как поступить?
Я создаю модель в Django следующего вида: https://pastebin.com/7kuNqd5R
В ней есть поле дата, и поле для файла. В файле будет находиться некий плейлист у которого в имени содержится дата ( например 01-01-2018.txt).
При добавлении его в БД я хочу:
1) проверять, соответствует ли формату имя файла.
2) Брать дату из имени файла и писать в поле pl_date
3) При добавлении сразу парсить содержание плейлиста и записывать данные в другую таблицу БД.
по п.1,2 я нагуглил определить в модели property set_file, get_file.
по п.3 пока что идей нет.

Сергей
22.03.2018
05:29:35

VIKTOR
22.03.2018
05:41:08
с точки зрения архитектуры насколько правильно переопределять save, pre_save

Google

VIKTOR
22.03.2018
05:41:19
может это лучше сделать не в модели

Dan
22.03.2018
05:42:04
post_save и pre_save
это сигналы и выносятся отдельно
переопределять save нормально
но конкретно в этом случае лучше вынести в сигнал
либо вообще в селери

VIKTOR
22.03.2018
05:44:21

Гийденко
22.03.2018
05:50:41

Dan
22.03.2018
05:53:15
ну я сонный был =)
потом прикинул что как минимум нужно держать актуальными модели в обоих приложениях
как выход выносить в отдельный git модуль

Гийденко
22.03.2018
05:54:41
https://github.com/jbittel/django-mama-cas
Пока что это нашел

Dan
22.03.2018
05:54:45
а так, если куки будут доступны на обоих(так как поддомен не проблема)
единая база сессии и юзера

Гийденко
22.03.2018
05:55:36
Чото мне кажется там иначе работает

Dan
22.03.2018
05:56:35
остается проблема то все таблицы будут хранится в одной базе, это если по простому
если по сложному то разные базы с роутингом в настройках orm

Гийденко
22.03.2018
05:57:32
Обмен данными о юзере между приложениями

Dan
22.03.2018
05:57:49
обмена не будет, так как база одна

Гийденко
22.03.2018
05:57:54
Но я только предполагаю. Будем посмотреть
Вот я не уверен что одна база.
Или ты точно знаешь?

Dan
22.03.2018
05:59:04
это я про то что я предложил
выносить базу в контейнер и конектиться с обоих приложений к одной базе

Гийденко
22.03.2018
05:59:41
Понял. А я про этот готовый вариант

Dan
22.03.2018
05:59:52
=)
мне кажется мой вариант проще

Google

Гийденко
22.03.2018
06:20:42
Похоже этот модуль еще не прикрутили ко второму джанге
Смотря какая ситуация

Dan
22.03.2018
06:24:04

Andrey
22.03.2018
06:40:06
@dantyan ты спишь хоть когда-нибудь?)

Dan
22.03.2018
06:41:22
бывает

Andrey
22.03.2018
06:41:42
Но не часто, видимо

Dan
22.03.2018
06:42:19
незаметно я бы сказал =)

Paul
22.03.2018
09:36:15
https://github.com/applegrew/django-select2
Я заметил, что поиск там не регистрозависимый и для русского языка.
А можно ли реализовать с его помощью поиск не только внутри модели, но и по моделям? Скажем по пользователям.

amureki
22.03.2018
09:37:46

Eugene
22.03.2018
09:39:33
queryset переопределить?

Paul
22.03.2018
09:39:58

amureki
22.03.2018
09:41:24
Так что я бы начал с этого вместо велосипедостроений над пакетами

Алексей
22.03.2018
09:42:26
Привет коллеги! Вопрос тем, кто api делает. Как нормально CSFR токен передать с другого домена? Использую corsheaders, django-rest-fraemwork, в настройках что только не пробовал, сейчас стоит CORS_ORIGIN_ALLOW_ALL = True
CSRF токен передаю через GET запрос, потом вставляю в cookie на фронте и отправляю с POST запросом в заголовке: X-CSRFToken:eaeeFIRm1lXmGwCXfcV1HGdmFjnZhJkJ9qMfB5DHgv2syx96S65SQWeFI5Bh0Etq
но получаю CSRF cookie not set.

Paul
22.03.2018
09:43:22
Тогда всё таки поставлю MySQL, спасибо.

Eugene
22.03.2018
09:43:44
csrf же как раз защита от cross-domain:)