Project using python/Cloning Airbnb
django show-list by FBV
Cog Factory
2021. 4. 23. 14:35
url 설정
config/urls.py
urlpatterns = [
path("lists/", include("lists.urls", namespace="lists"))
]
lists/urls.py
from django.urls import path
from lists import views
app_name = "lists"
urlpatterns = [
path("favs/", views.favs, name="favs"),
]
Client
pages/lists/fav_list.html
{% extends 'base.html' %}
{% block page_title %}
Favs
{% endblock page_title %}
{% block content %}
<div class="flex flex-col items-center justify-items-center">
<div class="w-10/12">
{% include 'mixins/room_card.html' with rooms=rooms %}
<div class="flex justify-center mt-20 itmes-center">
{% include 'mixins/page_number.html' with page=rooms %}
</div>
</div>
</div>
{% endblock content %}
FBV(Function Based View)
lists/views.py
# lists/views.py
from django.shortcuts import redirect, reverse, render
from django.core.pagiantor import Paginator
from django.contrib import messages
from lists import models as list_models
def favs(request):
page = request.GET.get("page", 1)
if page == "":
page = 1
else:
page = int(page)
page_sector = ((page - 1) // 5) * 5
the_list = list_models.List.objects.get_or_none(user=request.user)
if the_list is None:
messages.error(request, "List does not exist")
return redirect(reverse("core:home"))
qs = the_list.rooms.all()
paginator = Paginator(qs, 12, orphans=6)
rooms = paginator.get_page(page)
return render(
request,
"pages/lists/list_detail.html",
context={"rooms": rooms, "page_sector": page_sector},
)
참고 자료
- 노마드 코더의 Airbnb 클론 강의
소스 코드
github.com/zpskek/airbnb-clone-v3/commit/ac1cd3cff77668c5cf74f3371a5a2c97ba1d94c5