정오표

『쉽고 빠른 웹 개발 Django』의 정오표입니다.


 

PDF 1쇄 오탈자

153쪽 소스 밑에서 3~4행 (김한기 님)
return HttpResponseRedirect(request.MET A[‘HTTP_REFERER’])

return HttpResponseRedirect(request.META[‘HTTP_REFERER’])

162~163쪽 맨 아래 소스코드(templates/bookmark_page.html) 1행 (김한기 님)
{% extends “base.html” %}
{% block title %}북마크:

{% extends “base.html” %}
{% load comments %} # 꼭 추가해야 하는 부분!
{% block title %}북마크:


1쇄 오탈자

6쪽 두 번째 문단 5행
마감시간(deadlines)을 만족키기 위해 …

마감시간(deadlines)을 만족시키기 위해 …

41쪽 밑에서 4행
<p>북마트가 없습니다.</p>

<p>북마크가 없습니다.</p>

48쪽 소스코드 7행 (스파이크 님)
{% if form.has_errors %}

{% if form.errors %}

57쪽 두 번째 소스코드 마지막 행 (강조 처리 누락)
return render_to_response(‘user_page.html’, variables)

return render_to_response(‘user_page.html’, variables)

58쪽 3행 (에드 님)
이러한 과정을 간단하게 만들어주는 라이브러를 제공합니다.

이러한 과정을 간단하게 만들어주는 라이브러리를 제공합니다.

58쪽 4.3.2 소스코드 1행
from django import newforms as forms

from django import forms

62쪽 소스코드를 제외한 밑에서 3행
User 데이터모델 import합니다.

User 데이터모델 import합니다.

66쪽 첫 번째 소스코드 5행 (강조 처리 누락)
<a href=”/register/”>가입</a>

<a href=”/register/”>가입</a>

75쪽 3행 (연종흠 님)
[<Tag: book>, <Tag: publisher>]

[<Tag: >, <Tag: 출판사>]

77쪽 소스코드 중간의 if 문
If not created:

if not created:

81쪽 마지막 행 (연종흠 님)
django.contrib.auth.LOGIN_URL = ‘/login/’

LOGIN_URL = ‘/login/’

105쪽 2행 (최홍근 님)
Welcome 메시지 뒤에 …

환영 메시지 뒤에 …

105쪽 8행 (최홍근 님)
이제 버튼을 누르면, ‘You Clicked me!‘라는 메시지가…

이제 버튼을 누르면, ‘클릭했군요!‘라는 메시지가…

 

112쪽 첫 번째 소스코드 2행(에드 님)
$("#search-form").submit(search_submit);
$("#search-form").submit('search_submit');

 

115쪽 첫 번째 소스코드 2행 (강조 처리 누락)
bookmark = _bookmark_save(request, form)

bookmark = _bookmark_save(request, form)

115쪽 마지막 번째 소스코드 첫 행과 마지막 행 (강조 처리 누락)
from django.core.exceptions import ObjectDoesNotExist … elif request.GET.has_key(‘url’):

from django.core.exceptions import ObjectDoesNotExist

elif request.GET.has_key(‘url’):

116쪽 위쪽 소스코드 1행~밑에서 7행 (강조 처리 누락)
url = request.GET[‘url’] title = ” tags = ” try:   link = Link.objects.get(url=url)   bookmark = Bookmark.objects.get(     link = link,     user = request.user ) title = bookmark.title tags = ”.join( tag.name for tag in bookmark.tag_set.all() ) except ObjectDoesNotExist: pass form = BookmarkSaveForm({ ‘url’: url, ‘title’: title, ‘tags’: tags })

url = request.GET[‘url’]

title = ”

tags = ”

try:

  link = Link.objects.get(url=url)

  bookmark = Bookmark.objects.get(

    link = link,

    user = request.user

  )

  title = bookmark.title

  tags = ”.join(

    tag.name for tag in bookmark.tag_set.all()

  )

except ObjectDoesNotExist:

  pass

form = BookmarkSaveForm({

  ‘url’: url,

  ‘title’: title,

  ‘tags’: tags

})

119쪽 소스코드 6행 (이윤환 님)
bookmark = _bookmark_save(form)

bookmark = _bookmark_save(request, form)

119쪽 소스코드 2행, 7~14행, 18~20행, 밑에서 4행~120쪽 소스코드 2행 (강조 처리 누락)
ajax = request.GET.has_key(‘ajax’) … if ajax: variables = RequestContext(request, { ‘bookmarks’: [bookmark], ‘show_edit’: True, ‘show_tags’: True }) return render_to_response(‘bookmark_list.html’, variables) else: … else: if ajax: return HttpResponse(‘failure’) … if ajax: return render_to_response( ‘bookmark_save_form.html’, variables ) else: …

ajax = request.GET.has_key(‘ajax’)

  if ajax:

    variables = RequestContext(request, {

      ‘bookmarks’: [bookmark],

      ‘show_edit’: True,

      ‘show_tags’: True

    })

    return render_to_response(‘bookmark_list.html’, variables)

  else:

    …

else:

  if ajax:

    return HttpResponse(‘failure’)

if ajax:

  return render_to_response(

    ‘bookmark_save_form.html’,

    variables

  )

else:

120쪽 중간 소스코드 2행
bookmark = _bookmark_save(form)

bookmark = _bookmark_save(request, form)

123쪽 밑에서 5행 (정대연)
result$(“li”, result).get(0)를 …

$(“li”, result).get(0)를 …

131쪽 첫 문단 3행 (박윤하 님)
return ‘%s, %s’ % self.bookmark, self.votes

return ‘%s, %s’ % (self.bookmark, self.votes)

132쪽 둘째 문단 2행 (김영현 님)
열어서 _save_bookmark에서 아래와 같이…

열어서 _bookmark_save에서 아래와 같이…

134쪽 소스코드 5행, 9행 (김영현 님)
작성자 : … <span class=”vote-count”>추천 점수 :

추가한 사용자 :

<span class=”vote-count”>Votes:

146쪽 위쪽 소스코드 밑에서 7행 (박윤하 님)
<p><b>{{ comment.username }}</b>의 댓글입니다.</p>

<p><b>{{ comment.user_name }}</b>의 댓글입니다.</p>

154쪽 밑에서 두 번째 문단 마지막 행 (박윤하 님)
models.py를 열어서 아래처럼 수정…

admin.py를 열어서 아래처럼 수정…

169쪽 셋째 문단 마지막 행 (박윤하 님)
feed.py를 만들고 아래 코드를 저장합니다.

feeds.py를 만들고 아래 코드를 저장합니다.

185쪽 위쪽 소스코드 14행 강조처리 누락 (박윤하 님)
‘bookmarks’: bookmarks.object_list,

‘bookmarks’: bookmarks.object_list,

220쪽 2행 (최홍근 님)
위 명령을 실행하면 locale/de/LC_MESSAGES 디렉터리가 …

위 명령을 실행하면 locale/ko/LC_MESSAGES 디렉터리가 …

220쪽 두 번째 소스코드 아래 문단 1행 (최홍근 님)
이는 admin/ base_site.html 같이 …

이는 admin/base_site.html 같이 …

222쪽 마지막 문단 2행 (최홍근 님)
/i18n/setlang/language=de를 브라우저에서 …

/i18n/setlang/language=ko를 브라우저에서 …

246쪽 첫 문단 9행 (박윤하 님)
IDDLEWARE_CLASSES

MIDDLEWARE_CLASSES

252쪽 셋째 문단 1행

번역서가 발간된 이후인 2009년 4월 21일에 구글앱엔진에서도 한국어를 공식 지원한다고 발표하였습니다.

관련 소식 : http://google-code-updates.blogspot.com/2009/04/google-code-now-in-seven-languages-plus.html

아직은 메인 페이지만 번역되어 있지만 차차 하부 페이지들도 번역하겠다고 합니다.

253쪽 마지막 행 (최홍근 님)
‘Create Application’을 눌러서 엔진을 등록하겠습니다.

‘Create Application’을 눌러서 엔진을 등록하겠습니다.

258쪽 표 A-2 밑에서 6행 오른쪽 열 (박윤하 님)
object>.put()

<object>.put()