22. 10. 05.

hyo_dΒ·2022λ…„ 10μ›” 5일

μΊ ν”„ 25일차

1. 일과

πŸ‘‰ μž₯κ³  클둠코딩 4일차

2. μž₯κ³  클둠코딩 4일차

μΆ”κ°€κΈ°λŠ₯ κ΅¬ν˜„

1) νŽ˜μ΄μ§•

  • ν•œνŽ˜μ΄μ§€μ— ν‘œμ‹œλ˜λŠ” κ²Œμ‹œκΈ€μ˜ 수λ₯Ό 10개둜 μ œν•œ
  • 10κ°œκ°€ λ„˜μ–΄κ°ˆ 경우 λ‹€μŒ νŽ˜μ΄μ§€λ‘œ κ²Œμ‹œκΈ€μ΄ λ„˜μ–΄κ°€κ³  ν•˜λ‹¨μ—μ„œ νŽ˜μ΄μ§€ 이동이 κ°€λŠ₯

πŸ‘‰ content/views.py


# Paginator 클래슀 μ‚¬μš©
from django.core.paginator import Paginator

def content(request):
    if request.method == 'GET':
        user = request.user.is_authenticated
        if user:#둜그인이 λ˜μ–΄ μžˆλ‹€λ©΄
            user_list = UserModel.objects.all().exclude(username = request.user.username)
            all_content = ContentModel.objects.all().order_by('-created_at')
            paginator = Paginator(all_content, 10)
            page = request.GET.get('page')
            posts = paginator.get_page(page)
            context = {
                'content':all_content,
                'user_list':user_list,
                'posts' : posts
                 }
            return render(request,'content/home.html',context)
        else:#둜그인이 μ•ˆλ˜μ–΄ μžˆλ‹€λ©΄
            return redirect('/sign-in')

πŸ‘‰ content/home.html

<div class="page_num">
    {% if posts.has_previous %}

    <a href="?page={{posts.previous_page_number}}">back</a>
    {% endif %}
    <div class = 'paginator'>
    <span>{{posts.number}}</span>
    <span>/</span>
    <span>{{ posts.paginator.num_pages}}</span>
    </div>
    {% if posts.has_next %}
    <a href="?page={{ posts.next_page_number}}">next</a>

    {% endif %}
 </div>

2) μ’‹μ•„μš”

  • μ’‹μ•„μš” λ²„νŠΌμ„ μΆ”κ°€ν•΄μ„œ μ’‹μ•„μš”/μ·¨μ†Œκ°€ κ°€λŠ₯ν•˜κ³  μ’‹μ•„μš”μ˜ λˆ„μ  κ°―μˆ˜κ°€ ν‘œμ‹œλ¨
  • μ’‹μ•„μš” λͺ¨μ•„보기 νŽ˜μ΄μ§€μ—μ„œ μ’‹μ•„μš” ν•œ κΈ€λ“€λ§Œ λ³΄μ•„μ„œ λ³Ό 수 있음

πŸ‘‰ 쑰건문(if)을 μ‚¬μš©ν•΄μ„œ μ’‹μ•„μš”κ°€ 눌린 κΈ€λ§Œ 보이도둝 ν–ˆλ‹€

   {% if con in user.likes.all %}
   {% endif %}

πŸ‘‰ content/views.py

@login_required
def like_content(request):
    if request.method == 'GET':  # μš”μ²­ν•˜λŠ” 방식이 GET 방식인지 ν™•μΈν•˜κΈ°
        user = request.user.is_authenticated
        if user:
            user_list = UserModel.objects.all().exclude(username = request.user.username)
            all_content = ContentModel.objects.all().order_by('-created_at')
            context = {
                'content':all_content,
                'user_list':user_list,
            }
            return render(request,'content/like_content.html',context)
        else:
            return redirect('/sign-in')

3) νŒ”λ‘œμš°

  • μ‚¬μš©μžλ“€λΌλ¦¬ νŒ”λ‘œμš°/μ·¨μ†Œ ν•  수 있으며 ν”„λ‘œν•„μ—μ„œ νŒ”λ‘œμš°/νŒ”λ‘œμ›Œ 수λ₯Ό 확인 ν•  수 있음

πŸ‘‰ user/models.py

class UserModel(AbstractUser):
    class Meta:
        db_table = "my_user"
    follow = models.ManyToManyField(settings.AUTH_USER_MODEL, related_name = 'followee')

πŸ‘‰ user/views.py

@login_required
def user_follow(request, id):
    me = request.user
    click_user = UserModel.objects.get(id=id)
    if me in click_user.followee.all():
        click_user.followee.remove(request.user)
    else:
        click_user.followee.add(request.user)
    return redirect('/')

4) ν”„λ‘œν•„

  • μ‚¬μš©μžμ˜ ν”„λ‘œν•„μ„ λˆ„λ₯΄λ©΄ μ§€κΈˆκΉŒμ§€ κ²Œμ‹œν•œ 사진듀을 ν•œλ²ˆμ— λ³Ό 수 있음
  • μ‚¬μš©μžμ˜ νŒ”λ‘œμ›Œ/νŒ”λ‘œμš° 수λ₯Ό 확인 ν•  수 있음

πŸ€” 회고

  • μ˜€λŠ˜μ€ νŒ€μ›λ“€κ³Ό μΆ”κ°€κΈ°λŠ₯듀을 λ§ˆλ¬΄λ¦¬ν•˜κ³  λ°œν‘œμžλ£Œλ₯Ό μ€€λΉ„ν–ˆλ‹€. 생각보닀 5일이 λ„ˆλ¬΄ λΉ λ₯΄κ²Œ μ§€λ‚˜κ°€μ„œ 더 λ§Žμ€ κΈ°λŠ₯을 κ΅¬ν˜„ν•˜μ§€ λͺ»ν•œ 점이 아쉽닀. 내일이면 νŒ€ν”„λ‘œμ νŠΈκ°€ λλ‚˜λŠ”λ° λ°œν‘œκΉŒμ§€ 잘 λ§ˆλ¬΄λ¦¬ν–ˆμœΌλ©΄ μ’‹κ² λ‹€.
profile
햇병아리

0개의 λŒ“κΈ€