Мне нужно достать первую букву из django queryset

class Shop(models.Model):
    servis_name = models.CharField(verbose_name="Магазин", max_length=70, db_index=True, blank=True)

    class Meta:
        verbose_name = 'Магазин'
        verbose_name_plural = 'Магазины'

    def __str__(self):
        return self.servis_name


class Status(models.Model):
    status_name = models.CharField(verbose_name="Статус готовности", max_length=70, db_index=True, blank=True)

    class Meta:
        verbose_name = 'Статус'
        verbose_name_plural = 'Статусы'

    def __str__(self):
        return self.status_name


class Post(models.Model):
    author = models.ForeignKey(settings.AUTH_USER_MODEL, on_delete=models.CASCADE)
    shop = models.ForeignKey(Shop, related_name='shop', verbose_name="Магазин", on_delete=models.CASCADE, null=True)
    status = models.ForeignKey(Status, related_name='status', verbose_name="Статус", on_delete=models.CASCADE)
    model_Type = models.CharField(verbose_name="Тип модели", max_length=100, blank=True)
    firma = models.CharField(verbose_name="Фирма", max_length=50, blank=True)
    model_devie = models.CharField(verbose_name="Модель устройства",max_length=50, db_index=True, blank=True)
    Error_type = models.TextField(verbose_name="Тип поломки", blank=True)
    Klient = models.CharField(verbose_name="Клиент", max_length=200, db_index=True)
    Cost = models.CharField(verbose_name="Стоимость",max_length=7)

    created_date = models.DateTimeField(auto_now_add=True)
    number_Klient = models.CharField(verbose_name='Номер Клиента',max_length=13, db_index=True, blank=True)
    komplekt = models.CharField(verbose_name='Комплектация',max_length=200,blank=True)
    zametki_priemshika = models.CharField(verbose_name='Заметки приёмщика',max_length=200,blank=True)
    predoplata = models.CharField(verbose_name='Предопата',max_length=13,blank=True)
    uznali_o_nas = models.CharField(verbose_name='Узнали о нас ', max_length=100, blank=True)

view

def post_list(request):
    posts = Post.objects.all()
    tasks = Task.objects.all()

    return render(request, 'order/post_list.html', {'posts':posts, 'tasks':tasks})

Мне нужно из posts = Post.objects.all() взять первую букву сервиса. Допустим, один из сервисов будет называться "Мурино", другой "Энгельса" и т.д. . Ну и нужно вытащить эту первую букву...

{% if post.shop %} {{ post.shop[0] }}:{% endif %} {{ post.id }}

Ответы (1 шт):

Автор решения: Данил

В шаблонизаторе jinja2 нет оператора [], поэтому там все делается через точку. В вашем случае код должен быть такой:

{% if post.shop %} {{ post.shop.0 }}:{% endif %} {{ post.id }}

И подумайте не лучше ли вот так:

{% if post.shop %}
   {{ post.shop.0 }}:{{ post.id }}
{% endif %}
→ Ссылка