Как преобразовать строку QuerySet в строку String в шаблоне Django?

Шаблон Django показывает категории как, например, <QuerySet [<Category: Fashion>]> Я хочу, чтобы он показывал просто как Fashion.

index.html

{% for auction in auctions %}
        <li>Auction: {{ auction.title }} Content: {{ auction.content }} Price: {{auction.price}} Category: {{ auction.category.all|slice:":1" }} <img src="{{auction.pic}}" alt="{{auction.title}} pic">  </li>
    {% endfor %}

models.py

class Category(models.Model):
    FOOD = 'FO'
    TOYS = 'TO'
    FASHION = 'FA'
    ELECTRONICS = 'EL'
    HOME = 'HO'
    NOTHING = 'NO'

    CHOICECATEGORY = (
            (FOOD,'Food'),
        (TOYS,'Toys'),
        (FASHION,'Fashion'),
        (ELECTRONICS,'Electronics'),
        (HOME,'Home')
        )
    category = models.CharField(max_length=300, choices=CHOICECATEGORY)
    
    def __str__(self):
        return self.category

class Auctionmodel(models.Model):
    title = models.CharField(max_length=300)
    content = models.TextField()
    price = models.IntegerField()
    pic = models.CharField(max_length=300, blank=True)
    category = models.ManyToManyField(Category, related_name='Category')
    categorysomething = Category.objects.filter(category=category).first()

views.py

def index(request):
    return render(request, "auctions/index.html", {
"auctions": Auctionmodel.objects.all()
    })

Если у вас есть объект QuerySet, то шаблон покажет метод __repr__ этого объекта. Чтобы показать внутренние объекты, необходимо использовать цикл for:

{% for category in auction.category.all %}
    {{ category }} {{ category.category }}
{% endfor %}

или если вы действительно этого хотите (но это не является хорошей практикой):

{{ auction.category.first }}
Вернуться на верх