[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 에 아래를 추가한다.
마찬가지로 DetailView 로 구현한다.
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 로 구현한다.
댓글
댓글 쓰기