Дуд, ты в курсе отличий?
- Post.objects.filter(pk=self.pk).update(message=message)
+ post = Post.objects.get(pk=self.pk)
+ post.message = message
+ post.save()
Форум → Программирование → Python → Django → ORM update() vs save()
Страницы: ← Следующая страница →
3 марта 2014 г. 0:58, спустя 46 секунд
@adw0rd, ты меня совсем за лоха принимаешь? конечно в курсе
просто через билдер прогнанное.
3 марта 2014 г. 1:00, спустя 2 минуты 23 секунды
Ну я к тому, зачем ты поменял изменение одного поля message на изменение всех полей в Post?
3 марта 2014 г. 1:04, спустя 2 минуты 30 секунд
Я то знаю:
In [1]: from forum.models import Post
In [2]: p = Post.objects.get(pk=42)
In [3]: p.save()
UPDATE "forum_post"
SET "topic_id" = 17,
"author_id" = 2,
"message" = 'Поздравляем почетную крысу нашего форума и вообще хорошего человека с этим знаменательным днем.',
"message_formatter" = 'bbcode',
"created" = '2007-07-18 08:39:07+00:00',
"updated" = '2014-03-02 21:03:51.042910+00:00',
"attachments_count" = 0,
"absolute_url" = ''
WHERE "forum_post"."id" = 42 [28.12ms]
In [4]: Post.objects.filter(pk=42).update(message=p.message)
UPDATE "forum_post"
SET "message" = 'Поздравляем почетную крысу нашего форума и вообще хорошего человека с этим знаменательным днем.'
WHERE "forum_post"."id" = 42 [1.76ms]
3 марта 2014 г. 1:04, спустя 12 секунд
[28.12ms] и [1.76ms]
3 марта 2014 г. 1:07, спустя 3 минуты 14 секунд
@adw0rd, [28.12ms] и [1.76ms]
@adw0rd, как ты жалок)
имеется ввиду, что update сигналы не вызывает?
@Sinkler, и их тоже. update это raw sql builder.
мне было лень переписывать логику и я очевидно переписал код. 3 раза в минуту(ой спиздел, раз в 30 минут, пыха уже не та) на 28мсек ничего не стоят
3 марта 2014 г. 1:12, спустя 4 минуты 49 секунд
Ну я не понял зачем вообще ты это сделал? Было же и так хорошо, зачем делать хуже?
Тем более, народ жаловался что тормозит при отправке сообщения, я переделал на update и стало лучше.
Это у меня 28ms на хорошем проце и SSD, думаю другие цифры будут на нашем захудалом хостинге
3 марта 2014 г. 1:17, спустя 5 минут 11 секунд
Ну я не понял зачем вообще ты это сделал? Было же и так хорошо, зачем делать хуже?
FACEPALM
class Post(models.Model):
topic = models.ForeignKey(Topic, related_name="posts")
author = models.ForeignKey(
settings.AUTH_USER_MODEL, related_name="posts")
message = models.TextField()
message_formatter = models.CharField(
max_length=8, default="bbcode",
choices=settings.TEXT_FORMATTERS)
created = models.DateTimeField(auto_now_add=True, db_index=True)
updated = models.DateTimeField(auto_now=True, db_index=True)
updated = models.DateTimeField(auto_now=True, db_index=True)
в этой строчке как ты думаешь, при update сработает?) это я тебе намекающий вопросец задаю)
ааа я даже вспомнил почему я костыльнул через сохранение объектом
3 марта 2014 г. 1:20, спустя 2 минуты 11 секунд
Если бы ты добавил поле updated в update(), я бы понял тебя. Но если честно, то насрать на поле updated, где оно вообще используется?)
3 марта 2014 г. 1:22, спустя 2 минуты 18 секунд
Если бы ты добавил поле updated в update(), я бы понял тебя. Но если честно, то насрать на поле updated, где оно вообще используется?)
@adw0rd, да, а вот и кульминация))) я там видел с датами както очень хитро рабоатете, разбираться не стал - сделал сохранение через модель. я ж лентяй))
второе - используется в склейке, с ним сравнивается время между сообщениями на склейку которые должны или нет пойти.
так что нет, не из-за тупости своей так сделал)
3 марта 2014 г. 1:29, спустя 6 минут 44 секунды
Понял, ну вообщем если будет время можно вернуть update и добавить туда updated
update(message=message, updated=timezone.now())
Просто чем больше сообщение в посте, тем больше данных идут на сохранение... А добавление поста одно из самых тормозных мест у нас, если ты проанализируешь и оптимизируешь, то будет круто!
3 марта 2014 г. 1:33, спустя 3 минуты 53 секунды
Просто чем больше сообщение в посте, тем больше данных идут на сохранение.
ЛОЛ
не пугай козу травой, это я про данные и бд сервер.
единственное почему может тормозить, то это только перестройка индексов. ведь самые большие данные от сообщения (ого! соощение то самое большое наверное, я бы даже сказал что часто сообщение само это 80-99% от всех данных возможных) :-)
а вот index rebuild это да) если они там есть конечно)
3 марта 2014 г. 1:38, спустя 5 минут 51 секунду
тест склейки
Страницы: ← Следующая страница →
Пожалуйста, авторизуйтесь, чтобы написать комментарий!