То, как сделать django, передает стиль StackOverflow?

Я хотел бы использовать модуль сообщений Django, однако, я хотел бы, чтобы мои сообщения сохранились, пока пользователь не нажимает X рядом с сообщением в противоположность наличию сообщений, исчезают, как только пользователь перезагружает страницу.

Я озадачен с двумя проблемами: Как я заставляю процессор контекста сообщений не удалить сообщения, после того как к ним получают доступ? Как я позже удаляю сообщение из DB явно, после того как пользователь нажимает на "удалить" кнопку (который вызывает вызов ajax)?

Спасибо!

11
задан Yuval Cohen 19 June 2010 в 16:52
поделиться

3 ответа

В вашем случае django.contrib.messages ни к чему хорошему не приведет. Это система сообщений, вдохновленная системой флэш-памяти RoR, в которой сообщения не должны оставаться в памяти

. Вам следует создать свою собственную систему обмена сообщениями (может быть, django-persistent-messages?), Которая сохраняла бы сообщения для зарегистрированных пользователей в базе данных.

  • Это довольно тривиальная задача - реализовать
  • модель с внешним ключом на User
  • обработчик контекста, чтобы сообщения были доступны в шаблонах
  • представление для получения сообщения
  • может быть помощником функция для создания сообщений

Не забудьте сделать это доступным для других, если вы это сделаете =)

8
ответ дан 3 December 2019 в 05:33
поделиться

Начиная с версии 1.2, Django имеет новую структуру сообщений - django.contrib.messages - которая теперь полностью отделена от модуля auth и предлагает гораздо больше функциональных возможностей. Например, он обеспечивает базовый способ обработки истечения срока сообщений .

Вы также можете взглянуть на приложение django-cnotes , которое предоставляет простую систему уведомлений пользователей на основе файлов cookie. Установка константы CNOTES_AUTO_CLEAR на Ложь предотвращает автоматическую очистку нот.

И есть django-notices , еще одна замена встроенной системе уведомлений о сообщениях. Он не делает ничего волшебного, но предоставляет элегантный и простой API.

7
ответ дан 3 December 2019 в 05:33
поделиться

Сообщения Django могут показаться хорошей отправной точкой, но для того, чтобы добраться туда, куда вы хотите, требуются изгибы, и я бы не поверил, что будущий выпуск Django не сломает ваши хаки.

Реализация вашей собственной модели UserMessage, вероятно, будет лучше служить вам в долгосрочной перспективе. Это дает вам полный и однозначный контроль над жизненным циклом сообщения. Из него тоже может получиться хорошее приложение многократного использования.

2
ответ дан 3 December 2019 в 05:33
поделиться
Другие вопросы по тегам:

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