Django: Перенаправление к текущей статье после сообщения комментария

Я пытаюсь использовать приложение комментариев в своем проекте.

Я пытался использовать код ({% render_comment_form для % события}), показанный в документации здесь: Django комментирует

И вопрос состоит в том, как сделать перенаправление формы к той же странице после представления.


Также большой вопрос: В настоящее время, если у нас есть какая-либо ошибка, найденная в для, затем мы перенаправляемся для предварительного просмотра шаблона. Это возможно избежать этого поведения и ошибок дисплея по той же форме (на той же странице)?

5
задан Oleg Tarasenko 23 January 2010 в 13:33
поделиться

2 ответа

Я покажу вам, как я решил это в моем блоге, чтобы вы могли сделать что-то подобное. Мои комментарии предназначены для въезда в заявке в записи.

Сначала добавьте новый метод для вашей записи (например) объекта.

def get_absolute_url(self):
    return "/%i/%i/%i/entry/%i/%s/" % (self.date.year, self.date.month, self.date.day, self.id, self.slug)

Он генерирует URL для входных объектов. URL-пример: / 2009/12 / 12 / вход / 1 / lorem-ipsum /

на URLSPY Add 1 строку:

(r'^comments/posted/$', 'smenteks_blog.entries.views.comment_posted'),

Итак, теперь у вас должно быть как минимум 2 строки для комментариев в вашем файле URLS.

(r'^comments/posted/$', 'smenteks_blog.entries.views.comment_posted'),
(r'^comments/', include('django.contrib.comments.urls')),

Для записей (например) приложения в Proys.py файл добавить функцию:

from django.contrib.comments import Comment #A
...
def comment_posted(request):
    if request.GET['c']:
        comment_id = request.GET['c'] #B
        comment = Comment.objects.get( pk=comment_id )
        entry = Entry.objects.get(id=comment.object_pk) #C
        if entry:
            return HttpResponseRedirect( entry.get_absolute_url() ) #D
    return HttpResponseRedirect( "/" )    
  • a) Импорт поверх файла, чтобы иметь Доступ к объекту комментариев,
  • b) получить Comment_id Запрос формы,
  • C) Fetch Объект входа,
  • D) Использование meth_absolute_url метод, чтобы сделать правильный перенаправление.

Теперь:

  • кнопка POST в форме комментариев в разделе «Перенаправляйте пользователь сайта» на одном (входном) сайте.
  • Кнопка POST на предварительном просмотре Сайт перенаправляет пользователя в правильном (входном) сайте.
  • Кнопка предварительного просмотра в форме комментариев на сайте ввода и на предварительном просмотре Сайт перенаправления пользователя на сайте предварительного просмотра
  • Пасмир страницы
  • Палам.

Следующее, что нужно сделать, - это переопределить предварительный просмотр. HTML Шаблон:

  • Перейти в Django Framework Dir, под Linux он мог на / usr / share / pyshared /.
  • Получить оригинал Preview.html Шаблон из django_dir / preview / комментарии / шаблоны / комментарии / preview.html
  • Скопируйте его на шаблоны Дирекотри в вашем проекте Project_dir / Templates / Comments / enteries_preview.html
  • Он Shopud переопределяет шаблон по умолчанию, вы можете измениться продления таким образом: {% расширяется "your_pagelayout.html"%}, чтобы иметь свой макет и все файлы CSS.
5
ответ дан 14 December 2019 в 04:38
поделиться
Другие вопросы по тегам:

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