[uscript] 7장. script detail 만들기

스크립트 id 값으로 조회하는 상세화면을 만들어보자.
update와 동일하고 수정할수 있느냐 없느냐의 차이만 있다.
url을 아래와 같이 추가하자.

url(r'^(?P<pk>\d+)/$', views.DetailView.as_view(), name='detail'),

detail.html 을 다음과 같이 만든다.
<div class="total-page">
<h4>{{ scripts.title }}</h4>
{% if error_message %}<p><strong>{{ error_message }}</strong></p>{% endif %}

{% csrf_token %}
<div class="code-page"><pre><code>{{ scripts.contents }}</code></pre></div>
<p><label name="tag-list">Tag:</label>
{{ taglist }}
</p>
<a class="btn btn-default" href="update/">
<span class="glyphicon glyphicon-pencil" aria-hidden="true"></span> Edit</a>
<a class="btn btn-default" href='/scripts/{{ scripts.id }}/download' >
<span class="glyphicon glyphicon-download" aria-hidden="true"></span> Download</a>
<a class="btn btn-default" href="/scripts/{{ scripts.id }}/delete">
<span class="glyphicon glyphicon-trash" aria-hidden="true"></span> Delete</a>
<a class="btn btn-default" href="/scripts/">
<span class="glyphicon glyphicon-th-list" aria-hidden="true"></span> List</a>
</div>

views.py 에 아래를 추가한다.

class DetailView(generic.DetailView):
    model = Scripts
    template_name = 'scripts/detail.html'

    def get_queryset(self):
        return Scripts.objects.filter(pub_date__lte=timezone.now())

    def get_context_data(self, **kwargs):
        context = super(DetailView, self).get_context_data(**kwargs)
        taglist = self.object.tag_set.all()
        tag_string = ','.join(
            tag.tag_title for tag in self.object.tag_set.all()
        )
        context['taglist'] = tag_string
        return context

마찬가지로 DetailView 로 구현한다.

댓글

이 블로그의 인기 게시물

dtsrun 실행하기

[MS SQL] SP수행 시간 및 작업빈도 확인

Slug가 뭘까?