Невозможно получить название категории с помощью шаблонов в Django
Я работаю над проектом Django и хочу получить название категории в моем шаблоне, например Adventure, Hiking... но вместо этого он отображает идентификаторы категории, например 1,2,3. Вместо того, чтобы вывести название категории, он выводит мне id этой категории. Может ли кто-нибудь помочь мне с этим?
{% for data in tourData %}
{{data.category}}
{% endfor %}
models.py
class Tour(models.Model):
category_choices=[('1','Adventure'),('2','Trekking'),('3','Hiking')]
category=models.CharField(max_length=1,choices=category_choices,default='1')
view.py
def recommendations(request):
if request.method=='POST':
contents=Tour.objects.all()
category1= request.POST['category'] #Retrieves the category entered by the user
category2=request.POST['place']
tourData = Tour.objects.all().filter(category=category1,place=category2).order_by('-rating').values()
context={
'tourData':tourData
}
return render(request,"base/recommendations.html",context)
else:
tourData=Tour.objects.all().order_by('-rating').values()
context={'tourData':tourData
}
return render(request,"base/recommendations.html",context)
Вам необходимо использовать get_field_display
в вашем шаблоне, т.е.
{{ data.get_category_display }}
Это покажет второе значение кортежа в вариантах вашей модели, а не первое (первое - это то, что действительно попадает в базу данных).
Кстати, я бы рекомендовал изменить формат вашей переменной tourData
с camelCase на snake_case - tour_data
- это более питонично.