Hashtag기능 추가
190422
fake-insta7
-
hashtag기능 추가
1
2
# posts-urls.py
path('hashtag/<int:id>/', views.hashtag, name="hashtag"),
1
2
3
4
5
6
7
8
9
# posts-views.py
def hashtag(request, id):
hashtag = Hashtag.objects.get(id=id)
# related name이 설정이 되지 않았기 때문
## 설정이 되어 있다면 post_set대신에 그 related name을 넣어주면 됨
posts = hashtag.post_set.all()
comment_form = CommentForm()
return render(request, 'posts/list.html', {"posts":posts, "comment_form":comment_form, "hashtag":hashtag})
1
2
3
4
# list.html
{% if request.resolver_match.url_name == "hashtag" %}
<h2></h2>
{% endif %}
- ` template filter`
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
# templatetags 폴더 생성 후 __init__.py, posts_templatetag.py 생성
## posts_templatetag.py
from django import template
register = template.Library()
@register.filter
def hashtag_link(post):
content = post.content # '#하이 #안녕 # 인스타'와같은 덩어리로 들어가있음
hashtags = post.hashtags.all() # <queryset [hashtag1, hashtag6]>
for hashtag in hashtags:
content = content.replace(f"{hashtag.content}", f"<a href='/posts/hashtag/{hashtag.id}'> {hashtag.content}</a>")
return content
1
2
3
4
5
# _post.html
## 35번라인
{% load posts_template %}
<p class="card-text"><strong></strong> </p>
-
카카오 로그인 기능 달기
django allauth
라이브러리 설치- 공식문서 따라서 수정해주기
- 카카오개발자 가입
- 설정 - 일반 - 플랫폼에 추가
redirect path
: /accounts/kakao/login/callback/- 사이트도메인 : 내 주소(8080을 넣을때 / 안넣을때 랜덤)
- 사용자관리
- 프로필정보 / 카카오계정 ON
- 고급
- 코드활성화 - 적용
- 설정 - 일반 - 플랫폼에 추가
- 클라이언트아이디 :
rest api key
- 비밀 키 :
고급
-client secret
1
2
3
4
5
6
# accounts-form.html
## 추가
{% load socialaccount %}
{% if request.resolver_match.url_name == 'signup' %}
<a href="{% provider_login_url 'kakao' method='oauth2' %}">카카오로그인</a>
{% endif %}
1
2
3
# setting.py
## 추가
LOGIN_REDIRECT_URL = 'posts:list'
- 추가적으로 해야하는 것
- 비밀번호 찾기
- 회원탈퇴