프로그래밍/Django & Flask

[Django] 각 포스트마다 댓글 출력하기(~ing)

대인보우 2020. 11. 23. 19:38
반응형

댓글 기능 구현하기!

 

처음엔 단순하게 생각했다.

글쓰기처럼 모델을 생성하되 Post의 id를 foreign key로 삼아준다.

그리고 출력할 때 Reply의 posting_id와 Post의 id가 같은 것을 출력해주면 되지 않을까??

 

그래서

# Post/models.py

class Reply(models.Model):
    posting_id = models.ForeignKey(Post, on_delete=models.CASCADE, db_column='posting_id')
    reply_writer = models.CharField(max_length=30)
    reply_content = models.TextField()
    reply_date = models.DateTimeField(default=datetime.datetime.now)
    reply_like = models.IntegerField(default=0)

를 생성해주고, 

<!-- Blog/main.html -->

{% for reply in reply.all %}
{% if reply.posting_id == posting.id %}
<div id="reply_content"> <a id="reply_name" href=""><b>{{ reply.reply_writer }}</b></a>
{{ reply.reply_content }}</div>
{% endif %}
{% endfor %}

이렇게 출력해줬다.

그런데 출력이 안될뿐더러, 지금이야 댓글이 한두개니까 그렇다쳐도 더 많아지면 너무 비효율적이라는 생각이 들었다!

(출력이 안되는 이유는 자료형이 다르기 때문인 것 같다)

 

그래서 다른 방안을 찾아야겠다 생각했다!

애초부터 posting_id와 같은 댓글만 출력해줄 수 있는 방법이 없을까?!

 

 

반응형