- {% for item in item_list %}
+ {% for item in paginated_list %}
+
{% endblock %}
\ No newline at end of file
diff --git a/django_project/shopping/templates/search.html b/django_project/shopping/templates/search.html
new file mode 100644
index 0000000..c1d3b2a
--- /dev/null
+++ b/django_project/shopping/templates/search.html
@@ -0,0 +1,58 @@
+{% extends "base.html" %}
+
+{% block search %}
+
+{% endblock %}
+
+{% block content %}
+
+
+
+
+
Search
+
검색 결과를 반환하는 페이지입니다
+
+
+
+
+
+
+
+ {% for item in item_list %}
+
+ {% endfor %}
+
+
+
+{% endblock %}
\ No newline at end of file
diff --git a/django_project/shopping/urls.py b/django_project/shopping/urls.py
index fa0690a..f217bb6 100644
--- a/django_project/shopping/urls.py
+++ b/django_project/shopping/urls.py
@@ -10,4 +10,5 @@
path('formcreate/', views.formcreate, name='formcreate'),
# django modelform을 이용해 쇼핑 아이템(Shopping) 객체 만들기
path('modelformcreate/', views.modelformcreate, name='modelformcreate'),
+ path('search/', views.search, name='search_item'),
]
\ No newline at end of file
diff --git a/django_project/shopping/views.py b/django_project/shopping/views.py
index 4e1f557..80ede76 100644
--- a/django_project/shopping/views.py
+++ b/django_project/shopping/views.py
@@ -1,11 +1,28 @@
from django.shortcuts import get_object_or_404, render, redirect
+from django.contrib.auth.decorators import login_required
from .models import Shopping
from store.models import Store
from .forms import ShoppingForm, ShoppingModelForm
+from django.core.paginator import Paginator
def shopping_list(request):
- qs = Shopping.objects.all()
- return render(request, 'index.html', {'item_list': qs,})
+ sort_criteria = request.GET.get('sorting', 'descending-price')
+ if sort_criteria == 'descending-price':
+ qs = Shopping.objects.order_by('-price')
+ elif sort_criteria == 'ascending-price':
+ qs = Shopping.objects.order_by('price')
+ elif sort_criteria == 'name':
+ qs = Shopping.objects.order_by('name')
+ page = request.GET.get('page', '1')
+ paginator = Paginator(qs, '2') #Paginator(분할될 객체, 페이지 당 담길 객체수)
+ paginated_qs = paginator.get_page(page)
+ return render(request, 'index.html', {'paginated_list': paginated_qs, 'sorting': sort_criteria})
+
+def search(request):
+ oq = request.POST['search']
+ qs = Shopping.objects.filter(name__contains=oq)
+ return render(request,'search.html', {'item_list': qs})
+
def detail(request, pk):
item = get_object_or_404(Shopping, pk=pk)
@@ -39,6 +56,7 @@ def formcreate(request):
form = ShoppingForm()
return render(request, 'form_create.html', {'form':form})
+@login_required
def modelformcreate(request):
if request.method == 'POST':
form = ShoppingModelForm(request.POST)
@@ -47,4 +65,5 @@ def modelformcreate(request):
return redirect('list_page')
else:
form = ShoppingModelForm()
- return render(request, 'form_create.html', {'form':form})
\ No newline at end of file
+ return render(request, 'form_create.html', {'form':form})
+
diff --git a/django_project/static/css/login.css b/django_project/static/css/login.css
new file mode 100644
index 0000000..2f8a6a1
--- /dev/null
+++ b/django_project/static/css/login.css
@@ -0,0 +1,26 @@
+#section {
+ background-color: white;
+}
+
+#form {
+ border : 2px solid #eee;
+ border-radius: 15px;
+ padding: 50px;
+}
+#form input {
+ margin: 10px 0;
+ width: 100%;
+ border-radius: 5px;
+ padding: 5px;
+ text-indent: 10px;
+}
+#skhbutton {
+ background-color: rgba(255, 128, 0, 0.7);
+ color:white;
+ border: none;
+ border-bottom: 4px solid rgba(255,128,0,1);
+}
+#skhbutton:active{
+ border-bottom: none;
+ border-top: 4px solid white;
+}
\ No newline at end of file