from django import template

register = template.Library()

@register.simple_tag
def querystring(request, **kwargs):
    """
    Keeps existing GET params but allows override/remove.
    Example: {% querystring request page=2 %}
    """
    params = request.GET.copy()
    for key, value in kwargs.items():
        if value is None:  # remove param
            params.pop(key, None)
        else:
            params[key] = value
    return params.urlencode()

@register.filter
def strip(value):
    """Remove leading and trailing whitespace"""
    if isinstance(value, str):
        return value.strip()
    return value
