در این مطلب، ویدئو 38 – Django pre save & post save signals – Python & Django 3.2 Tutorial Series با زیرنویس فارسی را برای دانلود قرار داده ام. شما میتوانید با پرداخت 15 هزار تومان ، این ویدیو به علاوه تمامی فیلم های سایت را دانلود کنید.اکثر فیلم های سایت به زبان انگلیسی می باشند. این ویدئو دارای زیرنویس فارسی ترجمه شده توسط هوش مصنوعی می باشد که میتوانید نمونه ای از آن را در قسمت پایانی این مطلب مشاهده کنید.
مدت زمان فیلم: 00:07:30
تصاویر این ویدئو:
قسمتی از زیرنویس این فیلم:
00:00:00,000 –> 00:00:01,120
اکنون میخواهیم
2
00:00:01,120 –> 00:00:03,520
مفهوم سیگنالها را معرفی کنیم، زیرا میدانیم
3
00:00:03,520 –> 00:00:06,720
که روش ذخیره با استفاده از سیگنالها
4
00:00:06,720 –> 00:00:08,160
ممکن است کاری باشد که شما در نهایت انجام میدهید،
5
00:00:08,160 –> 00:00:10,559
مخصوصاً زمانی که چیزها را
6
00:00:10,559 –> 00:00:12,559
بارها و بارها تکرار میکنید و البته در
7
00:00:12,559 –> 00:00:14,719
مورد slugify که میتواند انجام شود. یک
8
00:00:14,719 –> 00:00:17,279
مثال خوب از آن است و بنابراین ما در واقع می خواهیم
9
00:00:17,279 –> 00:00:19,520
10
00:00:19,520 –> 00:00:22,240
قبل از اینکه خیلی جلوتر برویم، همین ویژگی را در سیگنال ها پیاده سازی کنیم، بنابراین برای
11
00:00:22,240 –> 00:00:23,439
انجام این کار، می خواهیم به جلو برویم و
12
00:00:23,439 –> 00:00:25,039
سیگنال ها را از
13
00:00:25,039 –> 00:00:28,039
django.db.models.signals
14
00:00:28,720 –> 00:00:30,480
وارد کنیم. سیگنال پیش ذخیره
15
00:00:30,480 –> 00:00:33,360
و سیگنال ذخیره پس از ذخیره را اکنون وارد کنید
16
00:00:33,360 –> 00:00:34,880
قبل از اینکه واقعاً آنها را اجرا کنم،
17
00:00:34,880 –> 00:00:38,320
می گویم مستندات این سیگنال
18
00:00:38,320 –> 00:00:40,640
ها عالی است، اما من دقیقاً به شما نشان می دهم
19
00:00:40,640 –> 00:00:43,120
که در حال حاضر چگونه کار می کنند و بنابراین
20
00:00:43,120 –> 00:00:45,280
این سیگنال ها در حال انجام هستند.
21
00:00:45,280 –> 00:00:47,440
این چه کاری انجام می دهد خوب است، بنابراین اولین مورد،
22
00:00:47,440 –> 00:00:50,480
اجازه دهید قبل از
23
00:00:50,480 –> 00:00:52,480
اینکه واقعاً در پایگاه داده ذخیره شود، یک پیش ذخیره را انجام
24
00:00:52,480 –> 00:00:55,039
دهیم، می خواهیم این مورد را در اینجا نادیده
25
00:00:55,039 –> 00:00:56,320
بگیریم، بنابراین کاری که من می خواهم انجام دهم این است
26
00:00:56,320 –> 00:00:59,280
که یک مورد ایجاد کنم. روشی به نام مقاله
27
00:00:59,280 –> 00:01:00,879
پیش ذخیره
28
00:01:00,879 –> 00:01:01,760
و
29
00:01:01,760 –> 00:01:03,600
کاری که من میخواهم انجام دهم این است که در واقع
30
00:01:03,600 –> 00:01:06,720
آرگومانها و آرگومانهای کلمه کلیدی را ارسال
31
00:01:06,720 –> 00:01:08,000
کنم، قبل از انجام این کار، میروم
32
00:01:08,000 –> 00:01:10,240
و آن را به سیگنالهای از پیش ذخیرهشده
33
00:01:10,240 –> 00:01:12,640
متصل میکنم، بنابراین presave.connect
34
00:01:12,640 –> 00:01:15,119
آن سیگنال و سپس میخواهیم از
35
00:01:15,119 –> 00:01:18,320
کلاس بهعنوان فرستنده بنابراین ما از مرکز در اینجا عبور می
36
00:01:18,320 –> 00:01:20,479
کنیم دقیقاً مانند آن
37
00:01:20,479 –> 00:01:23,920
من می گویم یک تزئین کننده عملکرد گیرنده وجود دارد
38
00:01:23,920 –> 00:01:25,759
که همان کار را انجام می دهد
39
00:01:25,759 –> 00:01:26,479
40
00:01:26,479 –> 00:01:29,040
من واقعاً از این طریق آن را دوست دارم اما
41
00:01:29,040 –> 00:01:31,200
اکنون در این مورد ما این
42
00:01:31,200 –> 00:01:32,960
عملکرد را داریم که این کار را انجام می دهد. با
43
00:01:32,960 –> 00:01:34,640
44
00:01:34,640 –> 00:01:36,640
هر پیش ذخیره سازی انجام می شود، بنابراین این همان کاری است که این
45
00:01:36,640 –> 00:01:38,880
سیگنال انجام می دهد،
46
00:01:38,880 –> 00:01:40,400
47
00:01:40,400 –> 00:01:43,759
هر بار که هر نمونه مقاله ای ذخیره می شود، به این تابع گیرنده متصل می شود،
48
00:01:43,759 –> 00:01:45,920
بنابراین برای دریافت آرگومان های واقعی که
49
00:01:45,920 –> 00:01:47,680
از اینجا می آیند،
50
00:01:47,680 –> 00:01:49,759
کاری شبیه به این انجام می دهیم و من فقط
51
00:01:49,759 –> 00:01:51,680
قبل از
52
00:01:51,680 –> 00:01:52,560
ذخیره کردن
53
00:01:52,560 –> 00:01:55,520
و سپس پرینت آرگ ها
54
00:01:55,520 –> 00:01:58,240
و کمان های کلیدواژه اکنون امیدواریم که شما به
55
00:01:58,240 –> 00:02:00,159
خوبی از معنای این چیزها آگاه باشید، اگر
56
00:02:00,159 –> 00:02:02,479
مطمئناً سری 30 روزه پایتون من را بررسی نکنید،
57
00:02:02,479 –> 00:02:04,880
اکنون می
58
00:02:04,880 –> 00:02:07,280
توانیم این چیز مشابه را
59
00:02:07,280 –> 00:02:10,000
برای سیگنال ذخیره پست،
60
00:02:10,000 –> 00:02:12,640
بنابراین به جای پیش، فقط
61
00:02:12,640 –> 00:02:15,840
آن را به ذخیره پست تغییر می دهیم و همه جا ذخیره پست
62
00:02:15,840 –> 00:02:17,920
وجود دارد
63
00:02:17,920 –> 00:02:19,360
و اکنون می توانیم ببینیم
64
00:02:19,360 –> 00:02:22,000
در سیگنال ذخیره پست چه اتفاقی می افتد و به
65
00:02:22,000 –> 00:02:24,640
طور خاص چه چیزی از طریق ارسال می شود،
66
00:02:24,640 –> 00:02:25,920
بنابراین برای انجام این کار، اجازه دهید ادامه دهیم و
67
00:02:25,920 –> 00:02:27,840
مطمئن شوید که سرور ما در حال اجراست و من میخواهم
68
00:02:27,840 –> 00:02:30,160
وارد ادمین شوم، اکنون
69
00:02:30,160 –> 00:02:32,400
مکانهای مختلفی وجود دارد که در آن مکانهای
70
00:02:32,400 –> 00:02:34,959
متد ذخیره فراخوانی میشود،
71
00:02:34,959 –> 00:02:37,120
هر جا که متد ذخیره نامیده میشود، این موارد
72
00:02:37,120 –> 00:02:39,120
نیز فراخوانی میشوند.
73
00:02:39,120 –> 00:02:41,519
نادیده گرفتن روش ذخیره
74
00:02:41,519 –> 00:02:44,160
و بنابراین، اگر وارد ادمین شویم و فقط
75
00:02:44,160 –> 00:02:45,920
چیزی را در اینجا ذخیره کنیم،
76
00:02:45,920 –> 00:02:47,840
چیزی که داریم این است که
77
00:02:47,840 –> 00:02:50,000
این موارد وارد می شوند، بنابراین مطمئناً
78
00:02:50,000 –> 00:02:52,160
سیگنال پیش امن هیچ
79
00:02:52,160 –> 00:02:54,080
آرگومان موقعیتی ندارد، بلکه دارای یک دسته
80
00:02:54,080 –> 00:02:55,599
از آرگومان های کلیدواژه است بنابراین این
81
00:02:55,599 –> 00:02:57,760
فرهنگ لغت در اینجا و سیگنال پس از ذخیره
82
00:02:57,760 –> 00:03:00,560
یکسان است با این تفاوت که یک
83
00:03:00,560 –> 00:03:02,319
مقدار اضافی در این
84
00:03:02,319 –> 00:03:05,200
فرهنگ لغت در اینجا دارد که فیلد
85
00:03:05,200 –> 00:03:08,640
یا پرچمی است که آیا این
86
00:03:08,640 –> 00:03:11,440
مورد ایجاد شده است یا نه، بنابراین در مستندات
87
00:03:11,440 –> 00:03:13,280
واقعاً نشان داده می شود. شما این so pre-
88
00:03:13,280 –> 00:03:14,879
save همه چیزها و نحوه
89
00:03:14,879 –> 00:03:17,200
تعریف آنها را به شما نشان می دهد و پس از آن post save نیز
90
00:03:17,200 –> 00:03:19,280
این کار را انجام می دهد و از جمله آن
91
00:03:19,280 –> 00:03:21,280
مقدار بولی یا آن پرچم برای اینکه
92
00:03:21,280 –> 00:03:24,560
آیا آیتم به تازگی به پایگاه داده اضافه شده است یا نه،
93
00:03:24,560 –> 00:03:26,080
اجازه دهید برویم. پیش بروید و این
94
00:03:26,080 –> 00:03:28,799
روش ذخیره را اکنون در داخل اخطار پیش ذخیره سازی اجرا کنید
95
00:03:28,799 –> 00:03:31,120
که ما در اینجا پیش ذخیره را انجام می دهیم،
96
00:03:31,120 –> 00:03:33,840
بنابراین در اینجا می خواهیم فرستنده و
97
00:03:33,840 –> 00:03:35,280
نمونه را ارسال کنیم،
98
00:03:35,280 –> 00:03:37,680
بنابراین نمونه واقعی
99
00:03:37,680 –> 00:03:39,840
100
00:03:39,840 –> 00:03:42,159
هر مدلی است که فرستنده ارسال می شود، نمونه واقعی است.
101
00:03:42,159 –> 00:03:44,159
خود کلاس مدل واقعی که
102
00:03:44,159 –> 00:03:46,239
میتوانیم با انجام فرستنده و
103
00:03:46,239 –> 00:03:48,239
نمونه آزمایش کنیم، البته زمانی که واقعاً
104
00:03:48,239 –> 00:03:50,640
قبل از اینکه بتوانیم به
105
00:03:50,640 –> 00:03:52,480
خوبی ببینیم، یک آرگومان ب