#python #django
Вопрос:
Я пытаюсь получить все данные набора запросов (имена и количество) с помощью шаблонов.
views.py
def get_expense(request):
#expenses = list(Expense.objects.values())
expenses = Expense.objects.values('name' , 'amount')
if request.method == 'POST':
form = ExpenseForm(request.POST, request.FILES)
if form.is_valid():
post = form.save(commit=False)
post.save()
#print(driver_text)
print(type(expenses))
return render(request, 'thanks.html', {'expenses':expenses}) #JsonResponse(expenses, safe=False) #
else:
form = ExpenseForm()
return render(request, 'index.html',{'form':form})
thanks.html:
{{ expenses }}
Я пытаюсь получить все эти данные набора запросов в списке, но вместо этого я получаю:
<QuerySet [{'name': 'Home Rent', 'amount': 8000.0}, {'name': 'hjvhjvhv', 'amount': 73.0}, {'name': 'tes', 'amount': 23.0}, {'name': 'dddd', 'amount': 34.0}, {'name': 'qqqqqqqq', 'amount': 56.0}, {'name': 'dddddddddd', 'amount': 34.0}, {'name': 'dddddddddxxxxxxxx', 'amount': 34.0}, {'name': 'dddddddddd', 'amount': 34.0}, {'name': 'dddddddddd', 'amount': 34.0}, {'name': 'dddddddddxxxxxxxx', 'amount': 56.0}, {'name': 'dddddddddxxxxxxxx', 'amount': 56.0}, {'name': 'dddddddddxxxxxxxx', 'amount': 56.0}, {'name': 'dddddddddxxxxxxxx', 'amount': 56.0}, {'name': 'dddddddddxxxxxxxx', 'amount': 56.0}, {'name': 'new', 'amount': 45.0}, {'name': 'new', 'amount': 45.0}, {'name': 'new', 'amount': 45.0}, {'name': 'new', 'amount': 45.0}, {'name': 'new', 'amount': 45.0}, {'name': 'hjvhjvhv', 'amount': 67.0}, '...(remaining elements truncated)...']>
Мне нужно только имя и сумма, указанные в списке, а не весь набор запросов.
Комментарии:
1. Покажите нам пример того, чего вы хотите ! Что-то вроде [{‘Аренда жилья’: 8000.0}, {…}, …] ?
2. Я хочу что-то вроде этого:
name: 'Home Rent' amount: 8000.00 name: hjvhjvhv amount: 73.00 name: tes amount: 23.00 .... Till the last element..
все должно быть в отдельных строках.3. У вас уже есть это в вашем примере, когда вы передаете его в шаблон, он ведет себя как диктант. В чем ваша проблема? Разве это не работает?
4. Вы пробовали
expenses = Expense.objects.all()
и в немindex.html
вы можете использоватьfor loop
как {{ expenses.name }}
Ответ №1:
В вашем файле .html пройдите по таким расходам, как этот :
{% for expense in expenses %}
<div>
name: {{ expense.name }}, amount: {{ expense.amount }}
</div>
{% endfor %}