Django/Django study
[Django] 친구추가, 팔로우 목록조회
카늬
2022. 12. 7. 14:53
models.py
#친구목록
class Follow(models.Model):
"""
유저
친구유저
"""
user = models.OneToOneField(User, on_delete=models.CASCADE,related_name="user")
to_user = models.ManyToManyField(User,related_name="to_user")
migrate
python manage.py makemigrations
python manage.py migrate
admin.py
from .models import User,Profile,Follow
.....
admin.site.register(Follow)
urls.py
urlpatterns = [
.....
#팔로우
path('follow_list/<int:user_id>/',views.follow_list,name='follow_list'),
]
views.py
#팔로우 목록
@login_required(login_url="common:login")
def follow_list(request,user_id):
follow = get_object_or_404(Follow,user_id=user_id)
context = {"follow" : follow}
return render(request,"common/follow_list.html",context)
follow_list.html
{% extends 'base/base.html' %}
{% load board_filter %}
{% block content %}
<div class="container my-3" >
<div class = "row">
<div class ="col-xs-8 col-sm-6">
<table class="table">
<thead>
<tr class="text-center table-dark">
<th>친구</th>
</tr>
</thead>
<tbody>
{% if follow%}
{%for user in follow.to_user.all%}
<tr class-"text-start">
<td>{{user.profile.nickname}}</td>
</tr>
{% endfor %}
{% else %}
<tr>
<td colspan="4">친구가 없습니다.</td>
</tr>
{% endif %}
</tbody>
</table>
</div>
<div class ="col-xs-4 col-sm-6">
<table class="table">
<thead>
<tr class="text-center table-dark">
<th>친구추가</th>
</tr>
</thead>
<tbody>
</tbody>
</table>
</div>
</div>
</div>
{% endblock %}
{% block script %}
{% endblock %}
실행화면
새로운 유저를 생성하였을 경우 "Follow"를 생성해 주어야 되기 때문에 회원가입에 코드 따로 추가해 주었다.
-----------------------------------------------------------------------------------------------------------------------------------------------------------------user에 follow컬럼을 manytomany로 생성하게 되면 중간단계인 위의 Follow모델을 자동으로 생성해준다고 한다.
나중에 수정할 부분이다