본문 바로가기

Project/ToyProject

[Rmanager] app - customPage

반응형

오늘은 장고에서 기본적으로 제공하는 페이지가 아닌

관리자가 직접 커스텀 페이지를 구성하는 것에 대해서 포스팅하려 한다.

app안에 별도의 view를 만들고 view를 연결하기 위해 url을 설정하고 해당 html을 구성.

date_view라는 함수를 만들고 템플릿을 응답하게 만든다.

그리고 원하는 html을 코드에 작성해 놓는데

코드 가운데 self.admin_site.each_context(requset)

를 지정하지 않으면

기존에 적용했던 코드들을 가져올 수가 없다

왜냐하면 기존에는 코드 자체를 커스터마이징 하는 것이 아닌

super로 값을 가져오면서 원하는 값을 추가한 형식이기 때문이다

그렇기 때문에 requset를 인자 값으로 가져오는 eact_context를 추가함으로써 기존과 동일하게 구현되는 걸 확인하였고

장고 admin에 기본적으로 제공된 base_site.html을 extends 한 후에

웹사이트 맨 상단에 위치한

이 부분을 동일하게 구현하기 위해서 해당 코드를 장고에서 제공한 기본 html 중

change_list.html에 위치한 걸 알고 난 후 해당 html에서 원하는 부분을 스크랩해왔다.

그리고 block content로 메인 내용을 감싼 걸로 확인되어서

그 부분 또한 스크랩해왔다.

그리고 이제 7일간의 원하는 data를 가져오는 방법인데

week_date를 현재부터 7일 전까지로 설정하고

__gte를 통해 week_date보다 크거나 같은 값으로 week_data로 설정하였다

그리고 나머지 값도 가져오기 위해 data를 __lt를 통해 week_date보다 작은 값들로 설정하였다

그 후, context안에 값을 딕셔너리 형식으로 가져오게 하였다.

그리고 가져온 데이터들을 테이블 형식으로 보이게 만들었고,

반복문을 통해 두 가지 테이블 형식으로 구성하였다.

최근 일주일간의 주문과 그 전의 주문들로 데이터를 구성했기 때문에, 테이블 또한 같은 구성 방식으로

구현하였다.

위 사진과 같이 적용됨을 확인할 수 있었고,.

부트스트랩을 이용하여 table 클래스를 주고 class='p-5'로 패딩 값을 주었다.

그리고 돌아갈 수 있는 버튼들을 구현하였다

order_change_list에는 block content가 아닌 block serach로 구성하였는데

처음에 content로 했을 때는 버튼이 너무 동 떨어져 있어서

기존에 있던 장고 html을 찾아보니 block search가 좀 더 맞을 것 같아서 수정하였다.

원래는 urls.py에 urls을 구성하는데

앱에 추가하는 커스텀 페이지는 get_urls를 사용하여 admin.py에서 직접 url을 연결하는 차이점이 있었다.

그리고 관리자 페이지를 만드는데 re_path를 설정하였다

from django.urls 안에 위치해있고 일반적인 path가 아닌 re_path를 통해 매뉴얼로 접근할 수 있게 구현

re_path는 정확히 그 페이지를 요구할 때 사용한다

^로 시작을 알릴 수 있고 $ 표시로 끝을 나타낼 수 있음

그리고 templates-> admin -> manual.html을 만들고

아까와 동일한 방법으로 extends 하고 block content에 원하는 값을 코딩하면 끝!

메뉴바를 구성하는 것은 baton테마는 기본적으로 제공하는 코드값이 있어서

그걸 스크랩해와서 입맛에 맞게 커스터마이징 하면 된다

반응형

'Project > ToyProject' 카테고리의 다른 글

[Baseball - Restrict console] plan  (0) 2021.08.01
[Rmanager] End  (0) 2021.07.31
[Rmanager] Backoffice - button  (0) 2021.07.31
[Rmanager] Backoffice customizing  (0) 2021.07.31
[Rmanager] Backoffice - list_display/baton tema  (0) 2021.07.31