Django QuerySet
Django QuerySet
QuerySet – це набір даних із бази даних.
Набір запитів створюється як список об’єктів.
Набори запитів спрощують отримання фактично необхідних даних, дозволяючи фільтрувати та впорядковувати дані на ранньому етапі.
У цьому посібнику ми будемо запитувати дані з таблиці Member.
Member:
| id | firstname | lastname | phone | joined_date |
|---|---|---|---|---|
| 1 | Emil | Refsnes | 5551234 | 2022-01-05 |
| 2 | Tobias | Refsnes | 5557777 | 2022-04-01 |
| 3 | Linus | Refsnes | 5554321 | 2021-12-24 |
| 4 | Lene | Refsnes | 5551234 | 2021-05-01 |
| 5 | Stalikken | Refsnes | 5559876 | 2022-09-29 |
Запит даних
У views.py ми маємо представлення для тестування під назвою testing, де ми будемо перевіряти різні запити.
У прикладі нижче ми використовуємо метод .all(), щоб отримати всі записи та поля моделі Member:
Представлення
views.py:
from django.http import HttpResponse
from django.template import loader
from .models import Member
def testing(request):
mydata = Member.objects.all()
template = loader.get_template('template.html')
context = {
'mymembers': mydata,
}
return HttpResponse(template.render(context, request))
Об’єкт поміщається в змінну під назвою mydata та надсилається до шаблону через об’єкт context як mymembers і виглядає так:
<QuerySet [
<Member: Member object (1)>,
<Member: Member object (2)>,
<Member: Member object (3)>,
<Member: Member object (4)>,
<Member: Member object (5)>
]>
Як бачите, наша модель Member містить 5 записів, які перераховані в QuerySet як 5 об’єктів.
У шаблоні ви можете використовувати об’єкт mymembers для створення вмісту:
Шаблон
templates/template.html:
<table border='1'>
<tr>
<th>ID</th>
<th>Firstname</th>
<th>Lastname</th>
</tr>
{% for x in mymembers %}
<tr>
<td>{{ x.id }}</td>
<td>{{ x.firstname }}</td>
<td>{{ x.lastname }}</td>
</tr>
{% endfor %}
</table>
Виконати приклад »