Search code examples
pythondjangosubstr

How to get Substr of values


Hi I have the following query in my views.py

m = Request.objects.filter(Q(type__icontains='4'), Q(wt__in =['giga','mega']))
context['all_items'] = m.values('type1').order_by('type1')

Its giving values sasoo, masoo, pisoo, kusoo etc.

How can I implement the Django Substr in this case so that my html will display values as sa, ma, pi, ku, ..


Solution

  • You can annotate the model

    from django.db.models.functions import Substr
    m = Request.objects.filter(Q(type__icontains='4'), Q(wt__in =['giga','mega']))
    context['all_items'] = m.annotate(mysubstring=Substr('type1',1,2)).order_by('type1')
    

    In template:

    {% for obj in all_items %}
        {# Use obj.mysubstring #}
    {% endfor %}