2015-08-24 3 views
0

У меня есть шаблон Django (list.html), который включает в себя следующие ссылкиОтключить ссылки на текущую страницу в Django

<a href="{% url 'notifications:list' %}" role="button">All</a> | 
    <a href="{% url 'notifications:list_unread' %}" role="button">Unread</a> | 
    <a href="{% url 'notifications:read_all' %}" role="button">Mark all read</a> 

два из этих представлений (уведомления: список & уведомления: list_unread) использовать этот шаблон, но отправьте другой запрос для отображения.

Как использовать язык шаблонов Django для отключения ссылки на текущий вид?

Или есть лучший способ сделать это? Похоже, что это будет общая задача.

+1

Ваш вопрос не очень ясен о том, какую проблему вы пытаетесь решить. Что значит «отключить» ссылку на текущий вид? Или вы говорите, что у вас проблемы с повторным использованием одного шаблона для 'list' и' list_unread'? –

+0

Я имею в виду, если они находятся на странице «Непрочитанные», я не хочу, чтобы ссылка «Непрочитанная» была доступна для кликов. – 43Tesseracts

ответ

0

Вы можете передать переменную в context и проверить это в своем шаблоне, чтобы отключить любую из ссылок.

Извещение Просмотр списка:

В вашем списке уведомлений, вы можете передать переменную notifications_list в шаблон.

class NotificationsListView(..): 

    def get_context_data(self): 
     context = super(NotificationListView).get_context_data() 
     context['notifications_list'] = True 
     return context 

Затем в шаблоне вы можете сделать что-то вроде:

{% if not notifications_list %} 
    <a href="{% url 'notifications:list' %}" role="button">All</a> | 
{% else %} 
    <a href="{% url 'notifications:list_unread' %}" role="button">Unread</a> | 
{% endif %} 
<a href="{% url 'notifications:read_all' %}" role="button">Mark all read</a> 

Таким образом, всякий раз, когда есть запрос для просмотра списка уведомлений, ссылка list будет отключена, и ссылка list_unread будет показано.

В случае запроса list_unread, будет показана ссылка list, а ссылка list_unread не будет показана.

Смежные вопросы