본문으로 바로가기
  • 파이썬 키워드 : 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>

 

활용해서 클릭시 확인창을 띄울 수 있었다.