class ListView:
model: Model
template_name: str
queryset: Queryset
from django.http import HttpRequest, HttpResponse
from django.shortcuts import render, HttpResponseRedirect, redirect
from django.views.generic import TemplateView, CreateView, UpdateView, DeleteView, ListView, DetailView, FormView
from .models import Task, ChecklistItem
from django.utils import timezone
from django.core.paginator import Paginator
from django.urls import reverse_lazy
class TaskPreviousView(ListView):
model = Task
template_name = "pages/task_previous_list.html"
queryset = Task.objects.filter(due__lt=timezone.now())
<div class="row row-cols-1 row-cols-md-2 row-cols-lg-4 g-4 mt-2">
{% for item in object_list %}
<div class="col">
<div class="card text-white bg-secondary mb-3">
<div class="card-header">{{item.type}}</div>
<div class="card-body">
<h5 class="card-title">{{item.title}}</h5>
<p class="card-text">
<span class="badge bg-light text-dark">
{{item.due|date:"Y๋
m์ d์ผ H์ i๋ถ"}}๊น์ง
</span>
</p>
</div>
</div>
</div>
{% endfor %}
</div>
Task.objects.filter(due__lt=timezone.now())
์ฝ๋๋ฅผ ์์ฑ{ํ๋๋ช
}__{์กฐ๊ฑด}
์์ผ๋ก ์ฌ์ฉํจIn[1] : from taskapp.models import Task
In[2] : from django.utils import timezone
In[3] : due_time = timezone.now() + timezone.timedelta(days=3)
In[4] : new_task = Task.objects.create(title="์ด์ ๋ฉดํ", type=Task.TaskType.SOCIAL, due=due_time)
In[5] : new_task.save()
QuerySet API Method๋ฅผ ์ฌ์ฉํด ๋ฐ์ดํฐ๋ฅผ ๋ค์ํ๊ฒ ์กฐํํ ์ ์๋ค.
QuerySet API Method๋ ํฌ๊ฒ ์๋ก์ด Querysets๋ฅผ ๋ฐํํ๋ ๊ฒ๊ณผ ๋ฐํํ์ง ์๋ ๊ฒ 2๊ฐ์ง๋ก ๋ถ๋ฅ
โ . all()
QuerySet return
์ ์ฒด ๋ฐ์ดํฐ ์กฐํ
โก. get()
๋จ์ผ ๋ฐ์ดํฐ ์กฐํ
๊ฐ์ฒด๋ฅผ ์ฐพ์ ์ ์๋ค๋ฉด DoesnotExist ์์ธ๋ฅผ ๋ฐ์์ํค๊ณ ๋ ์ด์์ ๊ฐ์ฒด๋ฅผ ์ฐพ์ผ๋ฉด MultipleObjectsReturned ์์ธ๋ฅผ ๋ฐ์์ํด
์์ ๊ฐ์ ํน์ง์ ๊ฐ์ง๊ณ ์๊ธฐ ๋๋ฌธ์ Primary Key์ ๊ฐ์ด ๊ณ ์ ์ฑ์ ๋ณด์ฅํ๋ ์กฐํ์์๋ง ์ฌ์ฉ
โข. filter()
์ง์ ๋ ์กฐํ ๋งค๊ฐ๋ณ์์ ์ผ์นํ๋ ๊ฐ์ฒด๋ฅผ ํฌํจํ๋ ์ QuerySet์ ๋ฐํ
์กฐํ๋ ๊ฐ์ฒด๊ฐ ์๊ฑฐ๋ 1๊ฐ์ฌ๋ QuerySet์ ๋ฐํ
โฃ. FieldLookup
ํํ | ์๋ฏธ |
---|---|
__exact | ์ ํํ ์ผ์น โ ๋์๋ฌธ์๋ฅผ ๊ตฌ๋ถ |
__iexact | ์ ํํ ์ผ์น โ ๋์๋ฌธ์๋ฅผ ๊ตฌ๋ถํ์ง์์ |
__contains | ํฌํจํ๋์ง โ ๋์๋ฌธ์๋ฅผ ๊ตฌ๋ถ |
__icontains | ํฌํจํ๋์ง โ ๋์๋ฌธ์๋ฅผ ๊ตฌ๋ถํ์ง์์ |
__gt | ํผ โ greater than |
__gte | ํฌ๊ฑฐ๋ ๊ฐ์ โ greater than or equal to |
__lt | ์์ โ less than |
__lte | ์๊ฑฐ๋ ๊ฐ์ โ less than or equal to |
__startwith | ์์ํ๋์ง |
__endwith | ๋๋๋์ง |
์ฐธ๊ณ ์๋ฃ - Django FieldLookup
์์ ํ๊ณ ์ ํ๋ ์ธ์คํด์ค ๊ฐ์ฒด๋ฅผ get()
์ ์ด์ฉํด ์กฐํํ ํ ๋ฐํ ๊ฐ์ ์ ์ฅ
์ธ์คํด์ค ๊ฐ์ฒด์ ์ธ์คํด์ค ๋ณ์ ๊ฐ์ ์๋ก์ด ๊ฐ์ผ๋ก ํ ๋น
save()
์ธ์คํด์ค ๋ฉ์๋ ํธ์ถํ์ฌ ์ ์ฅ
์ญ์ ํ๊ณ ์ ํ๋ ์ธ์คํด์ค ๊ฐ์ฒด๋ฅผ get()
์ ์ด์ฉํด ์กฐํํ ํ ๋ฐํ ๊ฐ์ ์ ์ฅ
delete()
์ธ์คํด์ค ๋ฉ์๋ ํธ์ถํ์ฌ ์ญ์