با سلام و احترام خدمت خوانندگان عزیز
❤️این پست بطور ویژه به تصحیحات کتاب اختصاص دارد و در صورت مشاهده توسط خودم یا ارسال از سوی خوانندگان عزیز،،، حتماً به روز خواهد شد.
🧲 صفحه 493:
بجای کلمه path باید کلمه re_path نوشته شود. خط درست:
re_path (r'^articles/(?P<artid>[-\w]+)/comments/$', comments_views.CommentList.as_view()),
🧲 صفحه 67 و 68:
نام متغیرهای date و datetime باید به هر نام دلخواه دیگری تغییر یابند. چون در پایتون، توابع/ماژول های کلیدی (keyword) به نام های date و datetime وجود دارند. خط درست:
#### Example-2:
from datetime import date
from django.utils import timezone
class Store (models.Model):
......
my_date=models.DateField (default=date.today) 👈
my_datetime=models.DateTimeField (default=timezone.now) 👈
......
🧲 صفحه 44:
خط مربوط به تعریف مسیر /admin/doc باید قبل از مسیر /admin باشد. خط درست:
urlpatterns = [
path ('admin/doc/', include('django.contrib.admindocs.urls')),
path ('admin/', admin.site.urls),
path ('', include('coffe_app.urls')),
]
🧲 صفحه 56 (تصحیح توضیح فیلد DecimalField):
یک فیلد از نوع اعشاری (deciaml) برای ذخیره کردن مقادیر از جنس اعشاری عدد در دیتابیس ایجاد میکند.
مقدار X درحال اشاره به کل عدد (صحیح و اعشار) و مقدار Y درحال اشاره به بخش اعشار عدد است. مثال:
models.DecimalField (max_digits=X, decimal_places=Y)
models.DecimalField (max_digits=3, decimal_places=2)
If you define max_digits to be 3 and decimal_places to be 2, the largest number you can save is 9.99 ==> It has 3 digits and 2 decimal places.
models.DecimalField (max_digits=12, decimal_places=4)
If you define max_digits to be 12 and decimal_places to be 4, the largest number you can save is 99999999.9999 ==> It has 12 digits and 4 decimal places.
🧲 صفحه 57:
در آخرین ردیف جدول این صفحه، بجای models اشتباهاً options نوشته شده است. خط درست:
models.SmallIntegerField()
🧲 صفحه 58:
در آخرین ردیف جدول این صفحه، نوع داده ()CommonSeparatedIntegerField در نسخه 1.9 جنگو منقضی و حذف شده است و دیگر قابل استفاده نیست.
🧲 صفحه 37 ((به منظور ایجاد/ساخت پروژه جنگویی برای نخستین بار باید از دستور django-admin استفاده گردد)). خط زیر غیر فنی است:
(azimzadeh_env1) ...\azimzadeh_env1> python
manage.py startproject coffehouse
خط درست و اصولی میشود:
(azimzadeh_env1) ...\azimzadeh_env1> django-admin startproject coffehouse
🧲 صفحه 38 (توضیح دقیق تر پوشه migrations در انتهای صفحه):
با اجرای دستور "python
manage.py makemigrations"، تعدادی فایل پایتونی در پوشه migrations ایجاد میشوند که از آنها برای تبدیل مدلهای جنگو (محتوای فایل
models.py) به ساختارهای DDL و DML دیتابیس استفاده میشود. فرآیند تبدیل مدلها به ساختار DDL و DML بهوسیله دستور "python
manage.py migrate" انجام میشود.
🧲 صفحه 86 (تصحیح توضیح گزینه/صفت managed):
در خط آخر این بولِت، بجای managed=False اشتباها managed=True نوشته شده است. خط درست می شود:
اگر از قبل جدولی برای مدلتان در دیتابیس طراحی کردهاید و نمیخواهید جنگو مجدداً در تنظیمات جدول شما تغییراتی اعمال کند، بهترین راهکار استفاده از حالت managed=False در کلاس Meta مدل است.
🧲 صفحه 289:
در قالب milani_test.html اشتباها بجای imageAD نوشته شده image :
<img src="{{ adimage.image.url }}" alt=''/>
خط درست می شود:
<img src="{{ adimage.imageAD.url }}" alt=''/>
🧲 صفحه 96:
درون متد/تابع (....)filter در هر سـه کلاس سفارشی مدیرمدل، بجای story_type اشتباها story نوشته شده است.
🧲 صفحه 100:
کلمه های Place و Restaurant جابجا نوشته شدند. خط درست:
گزینه/آرگومان on_delete با مقدار models.CASCADE به جنگو دستور میدهد که اگر رکورد X از مدل Place در دیتابیس حذف شد، رکوردی هم که در مدل Restaurant با رکورد X وابستگی و ارتباط دارد باید از دیتابیس حذف گردد (حذف آبشاری).
🧲 صفحه 389:
در کدهای Option2، بجای obj.state اشتباها self.state نوشته شده است.
خط درست: ()return '{} / {}'.format (
obj.city, obj.state).upper
همچنین کلمه uppercase در کدهای Option2 و Option3 باید به upper تغییر نام داده شوند. مثال: تبدیل uppercase_two_fields به upper_two_fields
🧲 صفحه 457:
متد ()get_user اشتباها درون متد ()authenticate نوشته شده است.
متد ()get_user خودش یک متد مستقل جنگویی است.