일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 중급파이썬
- S3
- dict
- 튜플
- merge
- 카톡
- SSA
- wetube
- NeXT
- MongoDB
- Vue
- TypeScript
- crud
- docker
- RDS
- 채팅
- socket io
- Class
- node
- pandas
- 파이썬
- AWS
- lambda
- async
- EC2
- git
- Props
- flask
- SAA
- react
- Today
- Total
초보 개발자
url 'namespace : name', reverse, get_absolute_url 본문
전에도 한번 말했다싶이 html에 href = "/room/1/edit-room" 이런식으로 적어놓았다고 했을 때
실행은 잘 되지만 만약 저 href를 바꿔야 할 때는 일일이 다 찾아서 바꿔야 할 것이다. 이를 위해 저번에 name과 namespace(app_name)을 설정해둔 적이 있다. 이를 사용하는 방법은 아래와 같다.
url template tag라고 한다.
href = "{% url "app_name:name" 매개변수 %}"
app_name이 먼저 오고 그 뒤에 name이 오는 형식이다.
근데 뒤에 매개변수라고 적어놓은 것은 무엇일까??? 사실 적당한 이름이 생각이 안나서 대충 적어 두었다...
저기에는 room/1 이런식으로 1이 들어가는 자리이다.
사용하기 위해서는 path에서 <>로 감싼뒤 그 안에 타입과 변수명을 지정해준다. room/1 이 경우에 pk에는 1이라는 값이 들어온다. 이를 view에서 사용하는 것이다. url template tag로 사용하기 위해선 아래와 같이 매개변수도 하나 넣어주어야 한다. room.id
그리고 reverse라는 걸 사용해 볼 것인데 이건 url name 받아서 그 url을 리턴해준다.
만약 argument가 필요하다면 ( <int:pk>와 같이 작성된 경우 ) 그 뒤에 적어주면 된다.
우리는 Room model에서 get_absolute_url이라는 것을 만들어 주려고 한다. 이건 디테일뷰를 만들때 많이 사용된다고 한다. 아래와 같이 만든다.
이건, 모델의 url을 만들어주는 것 같다. 즉 이 경우에는 room/id 이런식인 url이 만들어 지는 것이다. 이렇게 만들고 나면 url template tag대신에 사용할 수도 있다. 왜냐면 room은 get_absolute_url을 가지고 있고 이건 detail url로 이동시켜주기 때문이다!!
'Python > airbnb 클론' 카테고리의 다른 글
django Filtering (0) | 2022.02.08 |
---|---|
Http404, FBV detail -> CBV detail (0) | 2022.02.07 |
listview (0) | 2022.02.06 |
pagenation 2 (0) | 2022.02.06 |
pagenation 1 (0) | 2022.02.05 |