티스토리 뷰

반응형

상세보기

게시판에서 글관련해 제목이나 특정 버튼을 누르면 들어가서 볼 수 있게 하는것이다.

그리고 detail.html부분은 구현 난이도에 따라 여러가지 방식을 적어두었고, 계속 추가할 예정이다.

 

Variable routing

고유한 글을 보기 위해서는 id(primary key)가 필요하다.

따라서 아래코드의 굵은 글씨는 같은 값을 써야한다.

 

index.html에 아래와 같이 a태그를 추가하자.

<a href="/article/{{ article.article_pk }}/">글 보러가기</a>

 

urls.py

path('<int:article_pk>', views.detail)

 

views

def detail(request, article_pk):

  article = Article.objects.get(id=article_pk)                               : 이때 id 대신 pk로 적어도 동일한 값이 저장된다.

  context = {

    'article' : article

  }

  return render(request, 'articles/detail.html', context)

 

detail.html

<p>{{ article.article_pk }}</p>

<p>{{ article.content }}</p>

<p>{{ article.created_at }}</p>

<p>{{ article.updated_at }}</p>

 


배운 것들을 추가 적용해 보자.(개념들 정독 하고 오자.)

기본적으로 상세보기는 어떤한 글을 보는 것이기 때문에 Variable routing이다

+ get_object_or_404

 

 

 

index.html

{% for article in articles %}

  <a href="{% url 'articles:detail' article.pk %}">글보기</a>

{% endfor %}

 

urls.py

path('<int:pk>/', views.detail, name='detail')

 

veiws.py

from django.shortcuts import render, redirect, get_object_or_404

def detail(request, pk):

  article=get_object_or_404(Article, pk=pk)

  context={

    'article':article

  }

  return render(request, 'articles/detail.html', context)

 

 

+Article.objects.get(pk=pk)           =>           get_object_or_404

get 은 없어도 500 에러이고 많아도 500 에러이다. 글 자체가 없는것은 나의 잘못이 아니다.

 

detail.html

<p>{{ article.article_pk }}</p>

<p>{{ article.content }}</p>

<p>{{ article.created_at }}</p>

<p>{{ article.updated_at }}</p>

 

 

+ <hr>: 수평선          <br>:엔터

 


bootstrap 적용 최종

{% block body %}

<h2>{{ article.title }}</h2>

<p>{{ article.content }}</p>

<form action="{% url 'articles:delete' article.pk %}" method="POST" class="d-inline">

    {% csrf_token %}

    <button class="btn btn-primary">삭제</button>

</form>

<a href="{% url 'articles:update' article.pk %}"><button class="btn btn-primary">수정</button></a>

{% endblock %}

 

 


 

 

 

 

반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/11   »
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
글 보관함