آخرین تنظیمات

جنگو

سلام

شاید از قبل متوجه این موضوع شده باشید که وقتی فردی پاسخی را برای یک پست ارسال می کند فیلد last_update بروز رسانی نمی شود. حالا می خواهیم این مورد را درست کنیم.

boards/views.py

کار بعدی که قصد انجام آن را داریم کنترل روی سیستم شمارندۀ بازدیدهاست. ما نمی خواهیم بازدید چندبارۀ یک کاربر از یک صفحه را به عنوان چند بازدید در نظر بگیریم. چرا که در تحلیل ها با ترافیک جعلی و نتیجه گیری غلط مواجه خواهیم شد. برای این کار می توانیم از session یا نشست استفاده کنیم.

boards/views.py

کار بعدی بهبود وضعیت لیست تاپیک هاست.

در حال حاضر تنها راه ممکن برای کاربر کلیک روی عنوان تاپیک و انتقال وی به اولین صفحه است. به همین منظور می توانیم به شکل زیر عمل کنیم.

boards/models.py

در قالب topics.html هم مشابه زیر پیاده سازی خود را انجام می دهیم.

templates/topics.html

مشابه صفحه بندی برای هر تاپیک، به صورت جداگانه می خواهیم در جدول لیست تاپیک ها نیز برای تاپیک های مختلف صفحات را شماره گذاری کرده و نمایش دهیم.

در صفحۀ پاسخ ها در حال حاضر تمام پاسخ های یک تاپیک را لیست کرده ایم. حالا می خواهیم نمایش آن را به 10 پست آخر محدود  کنیم.

boards/models.py

templates/reply_topic.html

کار بعدی این است که وقتی کاربری به یک پست پاسخ می دهد؛ پس از ارسال پاسخ به اولین صفحه ریدایرکت شده و انتقال یابد. می خواهیم این موضوع را با انتقال کاربر به «آخرین صفحه» بهبود دهیم.

می توانیم به هر پست یک id وشناسه نسبت دهیم.

templates/topic_posts.html

قسمت مهم این کد مربوط به عبارت زیر است:

<div id="{{ post.pk }}" ...>

سپس در قسمت view به این شکل از ان استفاده می کنیم.

boards/views.py

در topic_post_url با استفاده از آخرین صفحه یک url ساخته ایم و به آن anchorای را اضافه کرده ایم که برابر با ID آخرین پست باشد.

با این کار لازم است که فایل تست خود را هم بروز رسانی کنیم.

boards/tests/test_view_reply_topic.py

همانطور که در عکس قبلی  مشاهده می شود؛ مشکل بعدی مربوط به شماره گذاری صفحات در زمانی است که تعداد صفحات خیلی بالا باشد. بهترین کار این است که قالب pagination.html را ویرایش کنیم.

templates/includes/pagination.html

خیلی خوب در اینجا آموزش های مربوط به پیاده سازی بورد جنگو به پایان می رسد. البته موارد زیاد دیگری مانده که ممکن است در آینده پیرامون آن آموزش هایی را تهیه کنم. مثل بهبود واسط کاربری، آپلود فایل، ساخت بخش مدیریت و…

قسمت بعدی این سری از آموش ها(فصل هشتم) مربوط به توسعه و راه اندازی پروژه به عنوان یک محصول نهایی خواهد بود.

شما می توانید کد های مربوط به این فصل را از آدرس زیر دانلود کنید 🙂

http://tamadon.net/python/code/550-django-beginners-guide-part7.zip

ترجمۀ اختصاصی توسط تمدن

 

مطلب بعدی: فصل بعدی: ورژن کنترل | Version Control

 

مطلب قبلی: تصویر پروفایل یا آواتار

بدون دیدگاه

پاسخی بگذارید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

جنگو
پیکربندی گواهینامۀ https

سلام حالا می خواهیم برنامۀ خودمان را با گواهینامۀ https امن کنیم. ساده ترین کار برای انجام آن Let’s Encrypt است. قبل از Let’s Encrypt هرگز تنظیمات https به این راحتی نبوده و مهمتر اینکه اینکار کاملاً رایگان است. آن ها راه حلی به نام certbot را ارائه داده اند …

جنگو
پیکربندی سرویس ایمیل

سلام یکی از بهتر سرویس دهنده های ایمیل Mailgun با قابلیت ۱۲ هزار ایمیل رایگان در ماه است. به صورت رایگان ثبت نام کنید. برای اینکار باید آن را با سرویس دهندۀ دامین خود تنظیم کنید که در این آموزش از tamadon.org استفاده شده است. حالا اولین رکورد DNS را …

جنگو
پیکربندی NGINX

سلام کار بعدی که قرار است انجام شود؛ تنظیمان Nginx به شکلی است که پاسخگویی و سرویس دهی مربوط به فایل های استاتیک را خود انجام دهد و سایر درخواست ها را به Gunicorn بفرستد. یک فایل پیکربندی با نام boards را درون /etc/nginx/sites-available/ و با محتوای زیر اضافه می …

هرگونه استفادۀ از این آموزش به صورت رایگان و با ارجاع به تمدن جایز است.