Size: a a a

Django [ru] #STAY HOME

2020 May 17

AD

Alex Dem in Django [ru] #STAY HOME
Подскажите пожалуйста, как быть если надо достать значения поля для разных моделей, если поле может находится по следующим паттернам:

instance.target_field
instance.related_field.target_field
instance.related_field.another_related_field.target_field

нужен какой-то хитрый рекурсивный поиск :)
источник

T

Tim in Django [ru] #STAY HOME
Nikolay Cherniy
или пара пива во мне мешает понять или в тебе больше) Человек написал что шаблоны включаются только тогда когда они нужны, если нужны. Если ты не видешь свой проект без шаблона, все нормально - делай)
Спасибо, что уделили время
источник

NC

Nikolay Cherniy in Django [ru] #STAY HOME
Alex Dem
Подскажите пожалуйста, как быть если надо достать значения поля для разных моделей, если поле может находится по следующим паттернам:

instance.target_field
instance.related_field.target_field
instance.related_field.another_related_field.target_field

нужен какой-то хитрый рекурсивный поиск :)
если правильно понял .filter(Q(target_field=search) | Q(related_field__target_field=search)) а вот сработает ли это через   две модели я хз
источник

AD

Alex Dem in Django [ru] #STAY HOME
Nikolay Cherniy
если правильно понял .filter(Q(target_field=search) | Q(related_field__target_field=search)) а вот сработает ли это через   две модели я хз
мне надо именно через class properties :(
это все еще часть вопроса про пермишены
не очень хочется кидать во все модели user FK, но во всех моделях его нужно проверять, но через разную серию полей
источник

BK

Boris Krutskih in Django [ru] #STAY HOME
Всем привет. Пишу приложение для бронирования столов в ресторане и хочу спросить совета, в правильном ли направлении я двигаюсь)
Функционал простой:
- Создание зала
- Создание столов в зале
- Выбор даты бронирования
Как я вижу models.
1я модель Hall
с полями размеры (width, height)
2я модель Table
С полями (number, seats_count, cordinateX, coordinateY, width, height, is_reserved)
3я модель Order (reserve_date, email)

Пользователь заходит на фронт -> видит сразу список залов, выбрав зал -> ему отображаются свободные столы на указанную дату, после чего он кликает на стол, и совершает бронирование (сам процесс бронирования хочу сделать с помощью обычно jQuery)
Может подскажите, ничего ли я не упустил?
источник

AD

Alex Dem in Django [ru] #STAY HOME
Nikolay Cherniy
если правильно понял .filter(Q(target_field=search) | Q(related_field__target_field=search)) а вот сработает ли это через   две модели я хз
попробую с другой стороны, наклепать пермишенов через абстрактный класс для каждого viewset'a
источник

AD

Alex Dem in Django [ru] #STAY HOME
источник

AD

Alex Dem in Django [ru] #STAY HOME
типа вот так
источник

AD

Alex Dem in Django [ru] #STAY HOME
но хз сработает ли :D
источник

AD

Alex Dem in Django [ru] #STAY HOME
Нет(, так нельзя миксовать классы
источник
2020 May 18

AD

Alex Dem in Django [ru] #STAY HOME
Сделал вот так (ну вдруг кому-то интересно)

Теперь можно наклепать для каждой модели
источник

MB

Muslim Beibytuly in Django [ru] #STAY HOME
Alex Dem
Сделал вот так (ну вдруг кому-то интересно)

Теперь можно наклепать для каждой модели
Тяжеловато, мы сделали свои permission на основе django guardian
источник

MB

Muslim Beibytuly in Django [ru] #STAY HOME
И миксины - сложный инструмент, скорее зло чем добро
источник

AD

Alex Dem in Django [ru] #STAY HOME
Muslim Beibytuly
Тяжеловато, мы сделали свои permission на основе django guardian
Тоже посматриваю в его сторону :)
Но интересно было самому попробовать
Спасибо!
источник

MB

Muslim Beibytuly in Django [ru] #STAY HOME
Alex Dem
Тоже посматриваю в его сторону :)
Но интересно было самому попробовать
Спасибо!
Думал выкатить на общий суд этот подход (наследоваться от IsAuthenticated и в каждом классе определять только codename модели и название приложения, к которому принадлежит модель), но слишком мало кода, скорее просто удобный класс в пару строк
источник

AD

Alex Dem in Django [ru] #STAY HOME
Muslim Beibytuly
И миксины - сложный инструмент, скорее зло чем добро
Я, кстати, сначала согласился, попутно вспомнив как я дебажил чужие миксины
с другой стороны, в джанго очень много миксинов
и если взять абстрактно и в принципе, миксин все-таки лучший вариант в сравнении с дублированием кода
источник

S

Sergey in Django [ru] #STAY HOME
Muslim Beibytuly
И миксины - сложный инструмент, скорее зло чем добро
если не путать МРО, и использовать правильное разделение, то ничего сложного в множественном наследовании нет
источник

S

Sergey in Django [ru] #STAY HOME
странно использовать ООП, обвиняя его в сложности одного из принципов..

Ну и мне не совсем понятно: в чём же всё таки сложность?
источник

S

Sergey in Django [ru] #STAY HOME
это даже не механизм джанго, в принципе (простите за тавтологию)
источник

S

Sergey in Django [ru] #STAY HOME
попробуй указать в дочернем классе metaclass
источник