@pydjango

Страница 471 из 1273
Bob
18.08.2017
07:22:07
Он отличается тем что для каждого узла рассчитывается left и right части, на основе которых потом очень ловко и быстро можно выполнять срезы дерева

Mikhail
18.08.2017
07:22:24
структурно он отличается тем, что помимо собственно ФК на самого себя, он добавляет ещё ряд полей

Bob
18.08.2017
07:22:32
а так же ловить - узел является листом или родителем и т.д.

Mikhail
18.08.2017
07:22:46
которые, собственно, и делают всю древесную магию

Google
Bob
18.08.2017
07:22:53
Плата за все это - когда появляется новый узел дерево частично перерасчитывается

Andrey
18.08.2017
07:24:55
Блин, это все и так знали. ?

Bob
18.08.2017
07:25:51
Ну отлично

Andrey
18.08.2017
07:25:52
Спор ни о чем, классика. Никто тут, кстати, не предлагал собраться ИРЛ? Может я что-то пропустил?

Bob
18.08.2017
07:26:36
Тогда вопросы закрываем, mptt меняем на id-parent_id ибо то же самое ?

Mikhail
18.08.2017
07:27:08
есть важное отличие

Bob
18.08.2017
07:27:17
Mikhail
18.08.2017
07:27:21
а именно - буковка P в MPTT

P for PREORDER

если у нас есть два или более узла с общим родителем, то в случае списков смежности мы не можем гаратировать порядок следования этих узлов: не знаем, какой будет первым, какой последним

Andrey
18.08.2017
07:28:40
Mikhail
18.08.2017
07:28:53
в MPTT же порядок следования нод зафиксирован

поэтому MPTT рулит

Google
Bob
18.08.2017
07:29:20
Андрей, а вот вы мигрировали с mptt на id-parent_id, а расскажите кратко - почему?

Andrey
18.08.2017
07:30:37
Андрей, а вот вы мигрировали с mptt на id-parent_id, а расскажите кратко - почему?
Изначально дерево не предполагалось использовать. Были ноды с родителями и без (корень). Порядок регулировался весом.

Bob
18.08.2017
07:31:22
Ахаха :)

Andrey
18.08.2017
07:32:35
? У меня была обычная модель. И через какое-то время понадобилось превратить её в mptt. Обратно не приходилось.

Mikhail
18.08.2017
07:32:55
обратно можно только с потерей данных :(

Dan
18.08.2017
07:33:10
а чего там теряется ?

Andrey
18.08.2017
07:33:20
А что потеряется, кстати, кроме порядка?

Mikhail
18.08.2017
07:35:01
порядок потеряется. Это довольно важно

Dan
18.08.2017
07:35:44
так если важно заечем убирать mptt ?

Mikhail
18.08.2017
07:36:30
понятия не имею. Кто-то хочет убирать

Bob
18.08.2017
07:37:13
@dantyan иногда mptt (думаю) не удовлетворяет ожиданиям по производительности

Mikhail
18.08.2017
07:37:54
mptt плох только на вставке поддеревьев

Dan
18.08.2017
07:38:09
@dantyan иногда mptt (думаю) не удовлетворяет ожиданиям по производительности
ну те есть более производительная альтернатива?

Andrey
18.08.2017
07:38:24
Я предполагаю, что можно отказаться в угоду производительности. И перефигачить руками поведение на БД. Но это какая же нужна производительность. И сколько нужно будет писать триггеры.

Bob
18.08.2017
07:38:27
ну да, id-parent_id

Mikhail
18.08.2017
07:38:30
но в типичном случае, мне кажется, гораздо чаще деревья читают, чем изменяют

а на чтение mptt очень быстр

Bob
18.08.2017
07:39:01
да я говорю о добалении в дерево mptt

Mikhail
18.08.2017
07:39:35
а сравнивать id-parent_id с mptt - это как мускульный движок myisam сравнивать с innodb

Google
Mikhail
18.08.2017
07:39:51
он тоже быстрый и тупой. И никакой гарантии целостности данных

Bob
18.08.2017
07:40:54
@marazmiki да это понятно, но вот скажем как решить нормально задачу ветвления комментариев с большим потоком?

Set
18.08.2017
07:40:56
подскажите пожалуйста в чем может быть проблема выводит ошибку Reverse for 'project_detail' with arguments '(1,)' and keyword arguments '{}' not found. 1 pattern(s) tried: [u'ru/projectt/$get/(?P<pk>[0-9]+)/$'] ругается на {% url 'all_projects:project_detail' new.pk %} урл url(r'^get/(?P<pk>[0-9]+)/$', ProjectDetail.as_view(), name='project_detail'),

Mikhail
18.08.2017
07:41:13
у меня есть pet project, там 4кк комментариев на mptt

Bob
18.08.2017
07:41:30
а в чём проблема?
mptt мне кажется не подойдет

Серьезно?

Mikhail
18.08.2017
07:41:52
честное пионерское

Bob
18.08.2017
07:42:38
честное пионерское
нет оснований недоверять, ладно я понял, что моё "лучше перебдеть" меня подвело ?

Mikhail
18.08.2017
07:42:53
ну на самом деле, есть оговорки :)

Bob
18.08.2017
07:43:01
хаха :)

Mikhail
18.08.2017
07:43:06
я говорю именно про django-mptt

Mikhail
18.08.2017
07:43:38
он сделан очень продуманно; фактически каждая нода нулевого уровня является свобственным деревом

Set
18.08.2017
07:44:05
Mikhail
18.08.2017
07:44:33
поэтому даже если комментариев к какому-то посту наберётся 500 штук (так редко, но бывает), в самом хучшем случае обновится только 499 записей. Это просто тьфу

Google
Andrey
18.08.2017
07:45:28
Mikhail
18.08.2017
07:45:39
поэтому django-mptt использовать можно и стоит. Собственный колхоз с одним эффективным стволом - с осторожностью.

Set
18.08.2017
07:45:50
Что пишет?
Reverse for 'project_detail' with arguments '()' and keyword arguments '{u'pk': 1}' not found. 1 pattern(s) tried: [u'ru/projectt/$get/(?P<pk>[0-9]+)/$']

Admin
ERROR: S client not available

Set
18.08.2017
07:49:02
/projectt/$get/(?P<pk>[0-9]+)/'] что за $?
сам не пойму откуда он

Andrey
18.08.2017
07:49:37
сам не пойму откуда он
Кидай urls и шаблон на пасту, посмотрим.

Mikhail
18.08.2017
07:49:41
дайте угадаю

там написано url('^projects$/', include('...urls', namespace=''))

Set
18.08.2017
07:50:38
Кидай urls и шаблон на пасту, посмотрим.
urlpatterns = [ url(r'^$', ProjectListView.as_view(), name='projects_list'), url(r'(?P<slug>[-\w]+)/$', ProjectListView.as_view(), name='cat_projects_list'), url(r'(?P<pk>[0-9]+)/$', ProjectDetail.as_view(), name='project_detail'), ]

Set
18.08.2017
07:53:03
Eugene
18.08.2017
07:59:26
https://httpstatuses.com/ кину ссылку в чатик, может быть кому-нибудь будет полезно :)

b0g3r
18.08.2017
08:01:21
www.restapitutorial.ru/httpstatuscodes.html

кину гораздо более информативную штуку :)

Eugene
18.08.2017
08:01:42
Не удается получить доступ к сайту :))

b0g3r
18.08.2017
08:01:43
.com - откроется нерусская

а так?)

Eugene
18.08.2017
08:02:35
Работает!

Google
amureki
18.08.2017
08:06:53


как понять, что сейчас идет конфа...люди генерят тонны ПР в джангу на спринтах:)

b0g3r
18.08.2017
08:07:47
хехе

8932 ишью и пр... это за сколько лет?)

или у пр там отдельная нумерация?

Mikhail
18.08.2017
08:08:43
а никому не приходилось пагинацию для raw-кверисетов делать?

Andrey
18.08.2017
08:43:42
Правда там не тестилось с тройкой.

Mikhail
18.08.2017
08:47:11
ну... я сам написал

но да, примерно так же действовал

Leonid
18.08.2017
10:06:45
день добрый кто нибудь сталкивался с пакетом https://github.com/satels/django-ipgeobase На этапе установки выдает ошибку file "\\\Python\Python36-32\lib\encodings\cp1251.py", line 23, in decode return codecs.charmap_decode(input,self.errors,decoding_table)[0] UnicodeDecodeError: 'charmap' codec can't decode byte 0x98 in position 448: character maps to <undefined>

Leonid
18.08.2017
10:10:48
да

Set
18.08.2017
10:13:02
у меня возникли вопросы по реализации класса активе как для ссылок как его реализовать у меня есть ошибочный пример <a class="{% if url_name == {% url 'all_projects:cat_projects_list' category.slug %} %}active{% endif %}" href="{% url 'all_projects:cat_projects_list' category.slug %}"

Senpos
18.08.2017
10:19:07
amureki где-то давно скидывал свой пример, не могу уже найти Вот на его основе вариант {% with request.resolver_match as url_info %} <li class="nav-item {% ifequal url_info.namespace 'blog' %}active{% endifequal %}"> <a class="nav-link" href="{% url 'blog:post_list' %}">Blog</a> </li> {% endwith %}

Вот, таки нашел

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