[Python #18] [Django #11] form action 변수 적용 (부제: 타인 글 검색)

@june0620 · 2020-09-10 12:15 · mini.topia

pixabay kanban-4051777_1280.jpg

지난 번 글에서 변수 처리할 줄 몰라 하드 코딩한 부분이 있다.

action은 일단 하드코딩으로 /@june0620/search로 한다. 계정명은 변수로 처리하고 싶은데 안된다. ㅠ (#연구필요#장고초짜)

내 계정으로 하드 코딩했기 때문에 다른 사람의 글은 검색이 안 되는 불편한 진실을 오늘 수정해본다. action 값에 계정명을 동적으로 넣어야 하는데 계정명을 입력받는 곳은 현재 URL밖에 없으니 URL에서 계정명만 추출해야 한다. 다행히 {{ request.path }}로 현재 접속 중인 URL을 가져올 수 있는 듯하다. Template filters로 URL에서 계정명만 추출하면 되겠다.

templatetags

templatetags 폴더 > post_extras.py에 필터를 하나 등록한다. URL을 인자로 받아 계정 추출하는 함수를 쓸 건데 정규 표현식을 동원해야 할 것 같은 느낌이 팍 온다. 아~~ 정규 표현식 모르는데... ㅠㅠ 인터넷에서 여러가지 방법 시도해 보다 가장 무난한 방법으로 가보자. 참고로 이런 정규식 체크 페이지도 있다. https://regex101.com/r/cO8lqs/4

import re
...
...

@register.filter
def get_account_form_url(path: str):
    account = re.search(r'@[a-z0-9-.]*', path)
    print(path)
    print(account.group(0))
    return account.group(0) if account else None

![](https://cdn.steemitimages.com/DQmdCAPzAmj4PnJLtWxLSTpgxbU1ZystDbc2E1PYcD6MNkS/image.png) ##### base.html 이제 base.html 상단에 필터를 load 하고, form action에 필터를 적용하면 되겠다.

{% load post_extras %}
...
...

          

![](https://cdn.steemitimages.com/DQmcQzKTGkiSocuYPrwYPJ3KXvc92ZtnxYWsRANkzK5mc7k/image.png) ##### 결과 이제 @gghite 님의 영화 리뷰를 검색해서 볼 수 있다. ㅎ ![](https://cdn.steemitimages.com/DQmQxiYpbdjy5Sqzt9pHMBg3Dzb83R2z2EV378DC7mYMYww/image.png) *** **[Cookie 😅]** Python 3.7.4 Django 2.2.4 steem-python 1.0.1 goorm IDE 1.3 참고한 글: https://medium.com/@chrisjune_13837/%EC%A0%95%EA%B7%9C%EC%8B%9D-%ED%8A%9C%ED%86%A0%EB%A6%AC%EC%96%BC-%EC%98%88%EC%A0%9C%EB%A5%BC-%ED%86%B5%ED%95%9C-cheatsheet-%EB%B2%88%EC%97%AD-61c3099cdca8

#kr #dblog #dev #django #whalepower #palnet #python #goorm
Payout: 0.000 HBD
Votes: 49
More interactions (upvote, reblog, reply) coming soon.