![article thumbnail image](https://blog.kakaocdn.net/dn/TTuyZ/btrOw2PkJpn/6Fhn6YcDjkk0ZKjhKlevLk/img.png)
영화정보 게시판 app_name='movies'
movies/models.py
from django.db import models
from django.conf import settings
class Hashtag(models.Model):
content = models.TextField(unique=True)
def __str__(self):
return self.content
class Movie(models.Model):
hashtags = models.ManyToManyField(Hashtag, blank=True)
- Hashtag라는 새로운 모델 추가 필드는 content를 가지고, unique는 True로 설정
- 기존 Movie테이블에 ManyToManyField로 Hashtag테이블과 연결 시켜준다.
movies/urls.py
from django.urls import path
from . import views
app_name = "movies"
urlpatterns = [
.....
path('<int:hash_pk>/hashtag/', views.hashtag, name='hashtag'),
]
movies/views.py
@login_required
def hashtag(request, hash_pk):
hashtag = get_object_or_404(Hashtag, pk=hash_pk)
movies = hashtag.movie_set.order_by('-pk')
context = {
'hashtag': hashtag,
'movies': movies,
}
return render(request, 'movies/hashtag.html', context)
movies/templates/movies/hashtag.html
{% extends 'base.html' %}
{% block content %}
<div>
<h2>{{ hashtag.content }}</h2>
<p>{{ movies|length }}개의 게시글</p>
</div>
<hr>
<div>
<h3>{{ hashtag.content }} (을)를 태그한 글</h3>
<br>
{% for movie in movies %}
<h5>영화 {{ movie.title }}</h5>
<p>{{ movie.comment_set.all|length }}개의 댓글</p>
<a href="{% url 'movies:detail' movie.pk %}" class="btn btn-primary btn-sm">상세글로 바로 가기</a>
<hr>
{% endfor %}
</div>
{% endblock %}
홈페이지(detiail.html)
홈페이지(hashtag.html)
'Django 개념' 카테고리의 다른 글
장고 rest api 게시판 게시글, 댓글 만들기 (DRF, json) (0) | 2022.10.17 |
---|---|
장고 팔로우, 팔로잉 기능 구현하기 (1) | 2022.10.13 |
장고 좋아요 기능 구현하기 (0) | 2022.10.13 |
장고 커스텀 filter 만들기 (0) | 2022.10.13 |
Django DB 저장, 조회, 수정, 삭제 crud (장고) (0) | 2022.09.01 |