発生刷 |
ページ数 |
書籍改訂刷 |
電子書籍訂正 |
内容 |
登録日 |
1刷 |
vi
上から11行目 |
2刷 |
済 |
誤 |
クロスタイリクエストフォージェリ |
正 |
クロスサイトリクエストフォージェリ |
備
考 |
※リフローEPUBの場合、「本書の対象読者と必要な事前知識、および構成」の「本書の構成」の5番目の段落が該当箇所です。 |
|
2021.07.20 |
1刷 |
ix
「サポートページ」のURL |
3刷 |
済 |
誤 |
https://www.shoeisha.co.jp/book/detail/9784798153964 |
正 |
https://www.shoeisha.co.jp/book/detail/9784798153957 |
|
2023.08.28 |
1刷 |
vii
表1,2 |
2刷 |
済 |
誤 |
・ライブラリなど
django-bootstrap4
・バージョン
3.0.0 |
正 |
・ライブラリなど
django-bootstrap5
・バージョン
1.0.0 |
備
考 |
※リフローEPUBの場合、「本書のサンプルの動作環境と付属データ・会員特典データについて」の「本書のサンプルの動作環境」にある表1と表2が該当箇所です。 |
|
2021.07.21 |
1刷 |
004
図1.3 |
2刷 |
済 |
誤 |
・URLの部分
http://localhost:8000/sunippets/new
・コードの部分
class Snippet(moidels.Model): |
正 |
・URLの部分
http://localhost:8000/snippets/new/
・コードの部分
class Snippet(models.Model): |
|
2021.07.20 |
1刷 |
004
図1.4 |
2刷 |
済 |
誤 |
・URLの部分
http://localhost:8000/sunippets/1/
・コードの部分
Class Snippet(models.Model):
code = models.TextField("コード".blank=True)
class Meta():
db_table = "sunippets"
|
正 |
・URLの部分
http://localhost:8000/snippets/1/
・コードの部分
class Snippet(models.Model):
code = models.TextField("コード", blank=True)
class Meta:
db_table = "snippets"
|
|
2021.07.20 |
1刷 |
012
図1.9 |
2刷 |
済 |
誤 |
methid: GET |
正 |
method: GET |
|
2021.07.21 |
1刷 |
025
図1.15 |
3刷 |
済 |
誤 |
|
正 |
|
|
2021.09.22 |
1刷 |
030
図1.18 左上「tatus 200」の箇所 |
3刷 |
済 |
誤 |
|
正 |
|
備
考 |
「tatus 200」を「status 200」に修正しました。 |
|
2023.07.24 |
1刷 |
035
リスト1.20、リスト1.21のキャプション |
2刷 |
済 |
誤 |
リスト1.20 テンプレートエンジンの分岐処理
リスト1.21 テンプレートエンジンのforループ |
正 |
リスト1.20 テンプレートエンジンのforループ
リスト1.21 テンプレートエンジンの分岐処理 |
|
2021.07.28 |
1刷 |
058
リスト1.43のキャプション |
2刷 |
済 |
誤 |
snippets/static/snippets/style.css |
正 |
snippets/static/snippets/css/style.css |
|
2021.08.04 |
1刷 |
063
下から3行目 |
3刷 |
済 |
誤 |
https://127.0.0.1:8000/login にアクセスして動作を確認してみましょう。
|
正 |
http://127.0.0.1:8000/accounts/login にアクセスして動作を確認してみましょう。 |
備
考 |
※リフローEPUBの場合、リスト1.49の下、3つ目の段落が該当箇所になります。 |
|
2023.07.15 |
1刷 |
066
リスト1.51 |
2刷 |
済 |
誤 |
{% load bootstrap5 %} |
正 |
{% load django_bootstrap5 %} |
|
2021.08.04 |
1刷 |
075
モデルフィールドの一覧の部分 |
2刷 |
済 |
誤 |
PostgreSQL:ArrayField、HStoreField、JSONField、IntegerRangeField、DateRange Field、... |
正 |
PostgreSQL:ArrayField、HStoreField、IntegerRangeField、DateRange Field、... |
備
考 |
※リフローEPUBの場合、「2.1.3 モデルフィールドの定義」の「モデルフィールドの一覧」の箇条書きが該当箇所になります。 |
|
2021.07.28 |
1刷 |
079
リスト(上から4~5行目) |
2刷 |
済 |
誤 |
def __str__(self):
return f'{self.pk} {self.title}'
|
正 |
def __str__(self):
return f'{self.pk} {self.text}'
|
備
考 |
※リフローEPUBの場合、2章の図2.1の次に掲載されているリストが該当箇所になります。 |
|
2021.08.04 |
1刷 |
086
下部コード内(下から5行目) |
2刷 |
済 |
誤 |
class SnippetQuerySet(models.Manager):
|
正 |
class SnippetQuerySet(models.QuerySet): |
備
考 |
※リフローEPUBの場合、「2.2.4 モデルマネージャーやQuerySetのカスタマイズ」の3つ目のリストが該当箇所になります。 |
|
2021.08.20 |
1刷 |
092
メモ |
2刷 |
済 |
誤 |
またMySQLではjoin_buffer_sizeパラメーターより・・・ |
正 |
またMySQLではjoin_buffer_sizeパラメーターにより・・・ |
備
考 |
※リフローEPUBの場合、「2.3.2 prefetch_relatedによる回避策」の直前にあるメモが該当箇所になります。 |
|
2021.07.28 |
1刷 |
108
2つの目のコード
|
3刷 |
済 |
誤 |
class Snippet(models.Model):
...
created_at = models.DateTimeField('登録日時', auto_now_add=True) # Aさんが追加
class Snippet(models.Model):
...
created_at = models.DateTimeField('登録日時', auto_now_add=True) # Bさんが追加
(画像クリックで拡大) |
正 |
class Snippet(models.Model):
...
created_at = models.DateTimeField('登録日時', auto_now_add=True) # Aさんが追加
class Snippet(models.Model):
...
updated_at = models.DateTimeField('更新日時', auto_now=True) # Bさんが追加
(画像クリックで拡大) |
備
考 |
誤の方はソースコードが1つにくっついてしまっていますが、正のようにソースコードを2つに分けてください。
※リフローEPUBの場合、図2.8の直前のリストが該当箇所になります。 |
|
2021.10.01 |
1刷 |
114
図3.1 |
2刷 |
済 |
誤 |
HttoRequest |
正 |
HttpRequest |
|
2021.07.21 |
1刷 |
117
(コード除く)本文上から7行目 |
2刷 |
済 |
誤 |
例:b'{"message": "Hello World"')
|
正 |
例:b'{"message": "Hello World"}') |
備
考 |
※リフローEPUBの場合、「3.1.3 HttpRequestオブジェクト」の箇条書きが該当箇所になります。 |
|
2021.08.20 |
1刷 |
119
メモのコード |
2刷 |
済 |
誤 |
from django.shortcuts import render, get_object_or_404
def snippet_detail(request, snippet_id):
snippet = Snippet.objects.get(pk=snippet_id)
return render(request, 'snippets/snippet_detail.html',
{'snippet': snippet})
|
正 |
from django.shortcuts import render, get_object_or_404
def snippet_detail(request, snippet_id):
snippet = get_object_or_404(Snippet, pk=snippet_id)
return render(request, 'snippets/snippet_detail.html',
{'snippet': snippet})
|
備
考 |
※リフローEPUBの場合、「3.1.5 例外を使ったエラー処理」のメモが該当箇所になります。 |
|
2021.07.28 |
1刷 |
121
(リスト除く)下から3行目 |
2刷 |
済 |
誤 |
as_viewメソッド使用します。 |
正 |
as_viewメソッドを使用します。 |
備
考 |
※リフローEPUBの場合、「3.2.2 クラスベースビューやMixinを利用する」の1つ目のリストの次の段落が該当箇所になります。 |
|
2021.07.28 |
1刷 |
130
表3.1のハンドラー名 |
2刷 |
済 |
誤 |
http400
http403
http404
http500 |
正 |
handler400
handler403
handler404
handler500 |
|
2021.07.28 |
1刷 |
134
図3.5 |
2刷 |
済 |
誤 |
Messgae body |
正 |
Message body |
|
2021.07.21 |
1刷 |
135
(図除く)本文上から4行目 |
2刷 |
済 |
誤 |
例:b'{"message": "Hello World"')
|
正 |
例:b'{"message": "Hello World"}') |
備
考 |
※リフローEPUBの場合、「3.4.2 x-www-form-urlencoded形式のデータの読み込み」の最初の箇条書きが該当箇所になります。 |
|
2021.08.20 |
1刷 |
171
上から5行目のコード |
2刷 |
済 |
誤 |
{% extends"base.html" %}
{% block main %}
<form method="post">
{% csrf_token %}
{{ form.as_p }}
</form>
{% endblock %}
|
正 |
<!-- titleフィールドのラベルのテキストを変更 -->
<p>
{{ form.title.errors }} <label for="{{ form.title.id_for_label }}">タイトル(必須)</label> {{ form.title }}
</p>
<p>
{{ form.code.errors }} {{ form.code.label_tag }} {{ form.code }}
</p>
<p><!-- descriptionフィールドも同様に表示 --></p>
|
備
考 |
※リフローEPUBの場合、図5.1の次に掲載されているリストが該当箇所になります。 |
|
2021.08.20 |
1刷 |
184
上のリストの最終行 |
3刷 |
済 |
誤 |
self.assertEqual(snippets[0].title, "title2") |
正 |
self.assertEqual(snippets[0].title, "title1") |
備
考 |
※リフローEPUBの場合、「6.1.2 モデルのテスト」の2つめのコードの最終行が該当箇所になります。 |
|
2023.07.15 |
1刷 |
222
図7.3 |
2刷 |
済 |
誤 |
PermissionsMixim |
正 |
PermissionsMixin |
|
2021.08.20 |
1刷 |
240
上から4-6行目 |
3刷 |
済 |
誤 |
>>> req = request.post('/api/snippets/', data={
... 'title': 'タイトル', 'description': '説明',
... 'code': 'print("Hello World")', 'created_by': 1})
|
正 |
>>> request.post('api/snippets/',
... content_type='application/json',
... data={'title':'タイトル','description':'説明',
... 'code':'print("Hello World"','created_by':1})
|
備
考 |
※リフローEPUBの場合、「8.1.1 SerializerによるJSONとの変換」の3つ目のグレー枠のコードが該当箇所になります。 |
|
2023.07.14 |
1刷 |
284,290
P.284:下から3行目、P.290:インデックス |
2刷 |
済 |
誤 |
drm-spectacular |
正 |
drf-spectacular |
備
考 |
リフローEPUBの場合、「A.3 本書で紹介したサードパーティーライブラリ一覧」の3つ目の項目が該当箇所になります。 |
|
2021.07.20 |
1刷 |
285, 290
P285:上から3つ目、P.290:インデックス |
2刷 |
済 |
誤 |
・P285
django-bootstrap4
GitHub https://github.com/zostera/django-bootstrap4
公式ドキュメント https://django-bootstrap4.readthedocs.io/
・P290
django-bootstrap4 |
正 |
・P285
django-bootstrap5
GitHub: https://github.com/zostera/django-bootstrap5
公式ドキュメント: https://django-bootstrap5.readthedocs.io/en/latest/
・P290
django-bootstrap5 |
備
考 |
リフローEPUBの場合、「A.3 本書で紹介したサードパーティーライブラリ一覧」の6つ目の項目が該当箇所になります。 |
|
2021.07.21 |