170 похожих чатов

Всем привет, кто то использует паттерн Repository? можете показать как

реализовать в Django

20 ответов

37 просмотров

в джанге нет смысла реализовывать, есть менеджер для этого

O_о-___ Автор вопроса
Nikolay Cherniy
в джанге нет смысла реализовывать, есть менеджер д...

ты имеешь ввиду переопределять менеджер?

O_о ___
ты имеешь ввиду переопределять менеджер?

ну если нужно какое-то определенное поведение - да

O_о-___ Автор вопроса
Nikolay Cherniy
в джанге нет смысла реализовывать, есть менеджер д...

а почему нет смысла это же хорошая практика прослойка между уровнем базы и приложением нет?

O_о ___
а почему нет смысла это же хорошая практика просло...

потому что 1 эта прослойка уже есть 2 к этой прослойке джанга сама обращается на прямую 3 смысл репозитория в том что ты убираешь зависимость приложения от реализации орм, а в джанге орм прибита гвоздями и ты все равно ни на что ее не поменяешь

O_о-___ Автор вопроса
Nikolay Cherniy
в джанге нет смысла реализовывать, есть менеджер д...

я вот ща доку читаю увидел два способа переопределения тип можно оказ через переопределения класса Manager и через Queryset а в чем различие что то не понял?)

O_о ___
я вот ща доку читаю увидел два способа переопредел...

переопределяешь кверисет и подсовываешь его в модель с методом .as_manager()

O_о-___ Автор вопроса
O_о ___
это я понял а разница есть у них?

менеджер это то что дергается после Model.manager например User.objects, а кверисет это то что возвращает менеджер, если не правильно сделать, то у менеджера и кверисета будут разные методы и ты не сможешь сделать User.objects.custom_query_method(), а User.objects.all().custom_query_method() - сможешь)

Nikolay Cherniy
в джанге нет смысла реализовывать, есть менеджер д...

Только увидел) Вообще менеджер прикол какой то, когда можно просто использовать classmethod =D

Есть статья на хабре про hexagonal architecture на django, загугии. Там есть ссылка на проект, где он реализован

O_о-___ Автор вопроса
O_о ___
ты сам используешь эту архитектуру?

Да, начал делать по оьразу и подобию, всё укладывается по полочкам. https://habr.com/ru/post/559560/ там ссылка на гитлаб с проектом у чувака внутри статьи. Если что, пиши в лс.

А как ты собираешься классметод комбинировать с другими параметрами запроса, например тебе нужно сначала отфильтровать, а потом уже выполнить логику из твоего классметода? Менеджер дает тебе гибкость и единообразный интерфейс

kuzmich
Ну так принимаешь qs и отдаешь qs

А зачем тогда классметод, если ты уже принимаеь кверисет? Это уже просто функция

Nikolay Cherniy
А зачем тогда классметод, если ты уже принимаеь кв...

Я, конечно же, пробовал менеджеры, но в итоге ты расписываешь в х2-3 строк кода, что мог просто функцией написать но

kuzmich
Ну так принимаешь qs и отдаешь qs

И как это будет выглядеть в коде, с менеджером - Model.manager.filter(…).custom_method(…)

kuzmich
Я, конечно же, пробовал менеджеры, но в итоге ты р...

Ну так ты эту функцию просто помещаешь туда где ей место и где она не ломает интерфейс

Похожие вопросы

Обсуждают сегодня

Здравствуйте, хочу сделать HelloWorld в консоли Дельфи, но функция API ничего не выводит, что я делаю не так? program Hello; {$APPTYPE CONSOLE} uses System.SysUtils, WinAPI.Wi...
Sergey Vinogradov
20
лучше скажите, причём тут паскаль?
Alexey Kulakov
32
Вопрос на перед, на следующую пятницу. Сколько строк кода можно вешать на одного программиста, понятно что если проект хорошо написан то можно и миллион. Но есть же где то пре...
AlekseyK Kluchnikov
31
Немного оффтопа: а кто на чем сидит для осдева в плане ide/редактора? Последнее время сидел на vscode, но я его прям не могу нормально воспринимать, перешел на сlion, но меня...
Evg Resh
29
#include <stdio.h> #include <stdlib.h> #include <time.h> int** generate_table(int size_matrix) { int** matrix = (int**)malloc(size_matrix * sizeof(int*)); for (int i ...
Чувак
1
@PerlBanjoBot use v5.38; sub split_on_cond($arr, $cond) { ($a, $b) = ([], []); push @{ $cond->($_) ? $a : $b }, $_ for @$arr; ($a, $b) } use Data::Dumper; warn Dumpe...
Sergei Zhmylove
10
Всем привет! как узнать, что текст в TSkLabel был выведен сокращенным ? Есть функция для TLabel которая позволяет определить , что текст выведен сокращенным function TFrmMai...
DELPHI SOLUTIONS
6
Вот объясните, как это работает: Вот есть допустим unix-подобная система, и программа запускает допустим printf или fork, как это передается ядру, и как оно обрабатывать начин...
Егор
14
Дебил? Я ищу друга
Bitard 228
27
У меня это всегда вопрос вызывало.. Нафига писать код так, чтобы потом ошибки вылавливать?
Nik
44
Карта сайта