@pydjango

Страница 501 из 1273
Aleksey
28.08.2017
15:16:51
этого делать нельзя (я думаю)

Artem
28.08.2017
15:16:56
логинчо)

что импорчу)

Aleksey
28.08.2017
15:17:04
а вообще, это чат джанги, а не реакта :)

Google
Artem
28.08.2017
15:17:22
в чате реакта в меня ссаными тряпками начнут кидать

BlastPy
28.08.2017
15:17:33
f[f[

Andrey
28.08.2017
15:17:41
А тут тип нет

Artem
28.08.2017
15:18:00


deadkorskiy
28.08.2017
15:19:38
Люди, вопрос, кто сталкивался: использую transaction atomic в переопределение метода save модели, в этой модели в одной транзакции сохраняются еще несколько дочерних моделей. - все работает. Теперь все тоже самое - но в другой модуль импортированы модели, в функции этого модуля написан атомик и в нем model1.save() model2.save() и тут даже если между сохранением двух моделей райзить эксепшен атомик не отрабатывает - 1 модель сохраняется, вторая нет. В чем может быть проблема ?

Олег
28.08.2017
15:19:48
попробуй export default

deadkorskiy
28.08.2017
15:23:39
ну вообще, это как-то не по феншую перед определенным save пихать транзакцию
Это почему? я унаследовался от модели, напиал свой сейв, типа: def save (дефолтные джанговские парметры сейва + 1 мой ) далее открыл атомик, обработал дочерние сущности , в этом же атомике вызвал super().save(прокинул дефолтные параметры)

в проекте 3 БД, я бы предположил что причина в роутах, если бы внутри сейва атомик не работал, но там он работает

логирование в дебаге, в логах ничего содержательного по теме транзакции

Artem
28.08.2017
15:28:37
ты как открываешь атомик, декоратором или блоком?

Google
deadkorskiy
28.08.2017
15:28:46
блоком

в дикаратор тоже оборачивал - картина ровно такая же

ни ошибок ни варнингов, просто если атомик вне модели он игнорится

Artem
28.08.2017
15:30:10
пример показать можешь?

deadkorskiy
28.08.2017
15:31:50
да, но сори он будет в несколько скринов:

Artem
28.08.2017
15:32:52
без проблем

Олег
28.08.2017
15:33:04
export default connect(mapStateToProps, mapDispatchToProps)(TasksPage);
хз, когда у меня что-то такое, я смотрю в консоль, более понятная ошибка от вебпака

Artem
28.08.2017
15:33:28
гавно сыпет не содержащее сути

deadkorskiy
28.08.2017
15:34:03
1) есть базовый класс бизнес логики



есть какая то модель которая от него унаследованна



там таких много

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

я хочу пройтись по нему в цикле и для каждой модели вызвать save и если хоть одна не отработала - не писать в бд ни одной

Denis
28.08.2017
15:36:27
super(type(self), self) Зачем?

Artem
28.08.2017
15:36:42
super(type(self), self) Зачем?
Универсально, абстраккция

Denis
28.08.2017
15:36:50
Это не так работает

Нужно явно писать имя класса

Иначе у наследника type вернет не то и произойдет какая-то хрень

Google
Denis
28.08.2017
15:37:53
Если питон третий, лучше просто super()

Artem
28.08.2017
15:37:57
type(*arg), вернет как раз таки класс текущий, вопрос только, что будет c mro()

deadkorskiy
28.08.2017
15:38:03
оно замечательно сораняется и все такое, не работает только атомик

Artem
28.08.2017
15:39:40
оно замечательно сораняется и все такое, не работает только атомик
может все таки атомик на этом этапе не может достучаться до роутера? и соответсвенно не пишет

deadkorskiy
28.08.2017
15:39:48
Более того, это уже просто одна из реализаций с которой я пока смирился. А пока разбирался я тестил и просто на двух модельках в которые все явно захардкодивал чтобы убедиться - и все равно не работало

Denis
28.08.2017
15:39:56
я дебажил, с этим там все правильно
>>> class A: ... def f(self): ... print('A') ... >>> class B(A): ... def f(self): ... super(type(self), self).f() ... print('B') ... >>> class C(B): ... def f(self): ... super(type(self), self).f() ... print('C') ... >>> c = C() >>> c.f() Тут бесконечная рекурсия

Denis
28.08.2017
15:41:08
Он из B.f вызывает B.f

Потому что super(C, self) = B

deadkorskiy
28.08.2017
15:41:18
мол незнает к какому классу обратиться за f() функцией
а как у меня тогда данные в бд оказываются если он не знает ?

Denis
28.08.2017
15:41:53
У тебя пока все случайно работает. Чуть поменяешь иерархию - перестанет работать

Artem
28.08.2017
15:43:25
У тебя пока все случайно работает. Чуть поменяешь иерархию - перестанет работать
Правильно говоришь! Сейчас заметил, он райзисшь, если type(self) == Model. А конкретно save() у тебя должен вызваться из под класса модели, основной который ты вызываешь save(). Либо к каждому save() пробрасывать класс модели

Denis
28.08.2017
15:46:21
super какой?

deadkorskiy
28.08.2017
15:47:37
вызовется супер cUniqueStuff он как видно из последнего скрина пустой и просто унаследован от самой уже обчной модели джано (db_models.TUniquesStuff)

Denis
28.08.2017
15:48:27
Не делай super вообще

self.save()

Из последнего скрина не видно ничего

Google
deadkorskiy
28.08.2017
15:49:39
Не делай super вообще
во, кстати хорошая идея. я по моему так еще не пробовал

Artem
28.08.2017
15:51:21
во, кстати хорошая идея. я по моему так еще не пробовал
и помимо self.save() посмотри, в роутере все гуд?

deadkorskiy
28.08.2017
15:52:55
и помимо self.save() посмотри, в роутере все гуд?
да я первым делом на него подумал, но просто в одной бае все работает, в другой тоже а в третей - нет, и одно единсвенно отличие атомик написан вне модели

deadkorskiy
28.08.2017
15:54:09
это конечно хреновый вопрос, но есть ли пермишоны на запись в эту базу?
Еще раз: Работает АБСОЛЮТНО все все данные доходят до базы

не работают только транзакции, я в одном атомике между сохраненеием двух моделей делаю raise Exception и 1 модель остается в бд а вторая соответсвенно нет

Denis
28.08.2017
15:55:41
Ну открой код атомика, поставь внутрь брейкпоинт и посмотри, когда он выполняется

Massimo
28.08.2017
15:56:29
в чате реакта в меня ссаными тряпками начнут кидать
Кстати только в Джанго, CSS и в JS чате мне адекватно отвечали

Artem
28.08.2017
15:57:13
Кстати только в Джанго, CSS и в JS чате мне адекватно отвечали
в реакте мне сказали - а куйня, System.import нету уже в реализации, и дальше про недельные супер фреймворки пестеть!

Denis
28.08.2017
15:57:43
Жээсники, сэр

Massimo
28.08.2017
15:58:09
Жээсники, сэр
Джээс хереси скорее

ilya
28.08.2017
15:58:17
Жэсянка)

Artem
28.08.2017
15:58:19
Верните десктопный софт, кругом плюсы и сплошь нативность!!! *плак-плак*

у меня браузер жрет больше черз Crysis3

Artem
28.08.2017
15:59:00
а грофона нету!

deadkorskiy
28.08.2017
16:00:30
self.save()
❤❤❤ помогло ! Спасибо !

Denis
28.08.2017
16:00:31
Юзает кто GraphQL на своих проектах?

Artem
28.08.2017
16:02:29
Google
Artem
28.08.2017
16:03:12
Юзает кто GraphQL на своих проектах?
как-то еще не прижился, это жээсеры любят поизвращаться с адаптером на монгу. Что бы напрямую дергать драйвер и выкидывать через GraphQL

Denis
28.08.2017
16:05:22
Просто некоторые вещи в нём реально удобно делать.. например мутации с разных бд... меня больше волнует ALC в таких вещах...

Alex
28.08.2017
16:29:21
Не могу понять что делает uwsgi. Я вот локально запускаю как Python manage.py runserver 8000 На прод так нельзя? uWSGI быстрее? В чем разница ?

Denis
28.08.2017
16:30:28
На прод так нельзя, потому что медленно

Alex
28.08.2017
16:36:46
А может кто обьяснить в чем разница? За счёт чего оно быстрее и лучше

ilya
28.08.2017
16:38:51
А может кто обьяснить в чем разница? За счёт чего оно быстрее и лучше
https://www.quora.com/Why-dont-we-use-Django-server-to-host-a-Django-website-in-production

Andrey
28.08.2017
16:39:30
Runserver не предназначен ни для чего кроме запуска в соло для разработки на локальной машине.

Дмитрий
28.08.2017
16:46:47
Runserver не предназначен ни для чего кроме запуска в соло для разработки на локальной машине.
Я порой удивляюсь, как можно советовать в мануалах так делать.

Когда читаю. На продах

X
28.08.2017
17:10:56
А есть статистика на сколько медленнее?)

Sergey
28.08.2017
18:28:02
и его не надо юзать в проде

Artem
28.08.2017
19:18:42
и его не надо юзать в проде
Также, как и опачик

Denis
28.08.2017
19:21:24
Ну с опачиком люди живут

Artem
28.08.2017
19:23:54
Ну с опачиком люди живут
Оставьте его, пусть уже умрёт своей смертью! ?

Massimo
28.08.2017
19:27:58

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