La URL: myurl/?page=1&reverse
Ahora quiero verificar en la plantilla si el reverse está allí:
{% if request.GET.reverse %} do somthing {% endif %} ¡Pero lo que hay entre if y endif nunca sucede!
¿Qué debo usar en lugar de request.GET.reverse ?
¿Por qué no poner esa lógica dentro de su view ? Me gusta esto:
# Function Based View (FBV) def my_view(request): reversed = request.GET.get('reverse', '') return render(request, 'template.html', locals()) # Class Based View (CBV) class MyView(ListView): template_name = 'path/to/template.html' queryset = MyModel.objects.filter(...) context_object_name = 'my_obj' def get_context_data(self, **kwargs): context = super(MyView, self).get_context_data(**kwargs) context['reversed'] = self.request.GET.get('reverse', '') return contextEntonces hazlo:
{% if reversed %} do somthing {% endif %}Por otro lado, si aún desea hacer este tipo de lógica en su plantilla, debe crear su propio filtro como este:
from django import template register = template.Library() def is_in_dict(d, key): return key in dy usarlo así:
{% load my_filters %} {% if request.GET|is_in_dict:"reverse" %} do somthing {% endif %}