Notice
Recent Posts
Recent Comments
Link
«   2024/10   »
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
Tags
more
Archives
Today
Total
관리 메뉴

MyPrograming

인스타그램 클론코딩 (팔로워 / 팔로우 Modal page) 본문

Python/python 클론코딩

인스타그램 클론코딩 (팔로워 / 팔로우 Modal page)

SeongWon 2020. 4. 11. 14:44
반응형

포스팅 수정, 삭제 기능을 구현했을 당시,

디테일 페이지에서 modal pop-up 기능을 사용한 것 처럼, 실제 인스타그램 페이지처럼 구축하기 위해서 

포스팅 리스트 페이지에서 해당 유저의 팔로워 / 팔로잉 유저 목록을 모달 페이지로 띄우기로 했다.

 

<포스팅 리스트 (유저 정보) 페이지>

리스트 페이지에서 팔로워 혹은 팔로우 글자를 클릭하게 되면 아래와 같이 Modal 팝업으로 유저 목록이 띄워진다.

 

<해당 유저의 팔로워 목록(Modal 팝업)>

 

<post_listView.py>

Modal 페이지에 띄워지는 데이터

def post_listView(request, list):
    user_id = request.user
    
    following_list = "SELECT profile_msg, profile_img_src, following_id, user_id" #클릭된 유저의 팔로잉 유저 목록
    following_list += " FROM accounts_user"
    following_list += " LEFT OUTER JOIN following on accounts_user.username = following.following_id"
    following_list += " WHERE following.user_id = (%s)"

    following_list_result = cursor.execute(following_list, (list,))
    following_list_datas = cursor.fetchall()

    follower_list = "SELECT profile_msg, profile_img_src, user_id, following_id"  # 클릭된 유저의 팔로워 유저 목록
    follower_list += " FROM accounts_user"
    follower_list += " LEFT OUTER JOIN following on accounts_user.username = following.user_id"
    follower_list += " WHERE following.following_id = (%s)"

    follower_list_result = cursor.execute(follower_list, (list,))
    follower_list_datas = cursor.fetchall()
    
    following_list = []
    for following_list_data in following_list_datas:
        row = {'profile_msg' : following_list_data[0],
               'profile_img_src' : following_list_data[1],
               'following_id' : following_list_data[2],
               'user_id' : following_list_data[3],
               }
        following_list.append(row)

    follower_list = []
    for follower_list_data in follower_list_datas: 
        row = {'profile_msg' : follower_list_data[0],
               'profile_img_src' : follower_list_data[1],
               'user_id' : follower_list_data[2],
               'following_id' : follower_list_data[3],
        follower_list.append(row)

 

 

<post_list.html>

Modal 페이지 부분 코드

<div class="modal-body">
              <!-- 팔로잉 유저 리스트 -->
              <div class="following_user_form">
                {% for following_list in following_list %}
                <div>
                <!-- 프로필사진, 팔로우 아이디, 메세지, 팔로잉, 팔로우 버튼-->
                <div class="following_info">
                  <div class="following_user_img">
                    <img src="{{ following_list.profile_img_src}}" alt="profile_img">
                  </div>
                  <div class="id_message">
                    <div class="following_id" > <a href="{% url 'instagram:list' following_list.following_id %}"> {{ following_list.following_id }} </a> </div>
                    <div class="following_id_message">{{ following_list.profile_msg }}</div>
                  </div>

                <div class="following_btn">
                  {% if user.username != following_list.following_id %}
                    {% if following_list.is_follow == 1 %}
                      <button type="button" class="btn btn-light" id="follow_btn" onclick="follow(this, '{{ following_list.following_id }}')">팔로잉</button>
                    {% endif %}
                    {% if following_list.is_follow == 0 %}
                      <button type="button" class="btn btn-primary" id="follow_btn" onclick="follow(this, '{{ following_list.following_id }}')">팔로우</button>
                    {% endif %}
                  {% endif %}
                </div>
                </div>
                </div>
                {% endfor %}
              </div>
            </div>
반응형