Форум сайта python.su
Хотим мы, допустим, вывести список комментариев для модерации и чтобы была там ссылка “удалить” и “одобрить”. Предположим, ссылки получаем функциями get_delete_url и get_approve_url.
def comments_moderation(request): comments = CommentWithTitle.objects.filter(is_public=False) for comment in comments: del_url = get_delete_url(comment) print del_url return render_to_response('newcomments.html', {'comments': comments}, context_instance=RequestContext(request))
Офлайн
Я думаю лучше сделать функции get_*_url методами модели
Офлайн
Правильнее IMHO заюзать CBV и написать миксин ModeratorMixin, помещая который в перечень классов-родителей будем получать определенный функционал.
Офлайн
svasНе совсем понимаю, что делать с тем, что вернёт метод.
Я думаю лучше сделать функции get_*_url методами модели
FishHookПопробую так.
Правильнее IMHO заюзать CBV и написать миксин ModeratorMixin, помещая который в перечень классов-родителей будем получать определенный функционал.
Офлайн
Написал пока так:
view.py
def delete_comment(request, comment_id): comment = CommentWithTitle.objects.get(id = comment_id) return HttpResponseRedirect(get_delete_url(comment))
url(r'delete_comment/(?P<comment_id>\d+)/$', delete_comment, name='delete_comment'),
<a href={% url delete_comment comment.pk %}>Удалить комментарий</a>
Офлайн
Вот получили мы не опубликованные комментарии:
comments = CommentWithTitle.objects.filter(is_public=False)
@models.permalink def get_delete_url(self): return ('delete_comment', (), { 'comment_id': self.pk, })
{% for comment in comments %} {{comment }} <a href="{{ comment.get_delete_url }}">Удалить комментарий</a> {% endfor %}
Отредактировано inoks (Фев. 5, 2013 11:59:41)
Офлайн
inoks, спасибо, вариант хороший.
В итоге получается, что по ссылке с адресом
{{ comment.get_delete_url }}
return urlresolvers.reverse("django.contrib.comments.views.moderation.delete", args=(comment.id,))
@models.permalink def delete_comment_url(self): return 'comments-delete', (), {'comment_id': self.pk}
{{ comment.delete_comment_url }}
Офлайн
ИМХО удалять информацию по ГЕТу это очень плохая практика.
Офлайн
FishHookНасколько помню, это представление запрашивает подтверждение удаления, которое отправляется уже кнопкой, ПОСТом.
ИМХО удалять информацию по ГЕТу это очень плохая практика.
Офлайн
SВ 1.5 сам инстанс вьюхи попадает в контекст
Как правильнее получить их в шаблоне?
Офлайн