- 파이썬 키워드 : False None True and as in 등등
- 식별자 : 함수, 변수, 클래스
- syntax error : 구문오류
- \' : 이스케이프 문자 이용하면 ' 그대로 인식 ' "" ' 이렇게 사용안해도 된다. \n 은 줄바꿈 \t는 탭 의미
- 문자열 연결 연산자, 반복 연산자, 문자선택 연산자[], 문자열 범위 연산자 [:] = 슬라이싱
- index error : 리스트 문자열 수를 넘는 부분을 선택
- 복합대입 연산자
def like(request, study_id):
# 스터디 id에 해당하는 객체를 가져온다
study = get_object_or_404(Study, pk=study_id)
# 요청한 사용자
user = request.user
# 가져온 스터디의 객체에서 like에 가면 좋아요한 user있을건데(테이블이 있을거임)
# 요청한 유저가 있는걸 filter함 그럼 필터말고 겟도 가능하지않나?
filtered_like_study = study.like.filter(id=user.id)
# 변수를 이용해서 존재할경우, study like 에서 유저 제거 해당 객체를 삭제한다고 이해함
if filtered_like_study.exists():
study.like.remove(user) #여기서 user는 뭘 의미하는지 모르겠네 아마 유저인듯
return redirect('study_detail', study_id=study.id)
# 없을 경우, study 객체에서 like에 해당 user를 추가
else:
study.like.add(user)
return redirect('study_detail', study_id=study.id)
주석에 달려있는 filter말고 다른방법으로 들고올 수 있을지, user의 의미를 시간나면 알아볼 예정이다.
<div>
<form action="{% url 'submit' study.id %}" method='POST'>
{% csrf_token %}
{% if user in study.submit.all %}
<input onclick="return confirm('신청취소 하시겠습니까?');" type="submit" value='신청 취소'>
{% else %}
<input onclick="return confirm('신청 하시겠습니까?');"type="submit" value='신청'>
{% endif %}
</form>
</div>
활용해서 클릭시 확인창을 띄울 수 있었다.
'TIL' 카테고리의 다른 글
DRF 연습 | Error: that port is already in user. (0) | 2022.10.27 |
---|---|
NoReverseMatch | DRF 연습중 에러 (0) | 2022.10.27 |
redirect는 언제 어떻게 써야할까? (0) | 2022.10.25 |
community 만들기 | create_comment | mysql 이해, 실습 (0) | 2022.10.24 |
WIL | 게시판 만들기 | 프로젝트 끝 | 피드백 (0) | 2022.10.24 |