ویوی پاسخ به پست

جنگو

سلام

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

یک آدرس جدید اضافه می کنیم.

myproject/urls.py

یک فرم  جدید برای پاسخ به پست می سازیم.

boards/forms.py (مشاهده کد کامل)

ویوی جدید توسط login_required@ محافظت می شود.

boards/views.py (مشاهده کد کامل)

حالا باید ریدایرکت تابع ویوی new_topic را بروزرسانی  کنیم. (همان قسمتی که با TO DO# به شکل کامنت درآمده بود.)

نکتۀ مهم: در ویوی reply_topic از topic_pk  استفاده می کنیم چون قرار است به آرگومانی از تابع ارجاع دهیم و این در حالی است که در ویوی new_topic از topic.pk استفاده می کنیم چراکه topic یک شی یا object از مدل Topicبوده و استفاده از pk. امکان دسترسی به متعلقات مدل تاپیک را فراهم می کند. جزئیات ریز و تفاوت های بزرگ!!

اولین نسخه از قالب با محتوای زیر خواهد بود:

templates/reply_topic.html

بعد از ارسال پاسخ، کاربر به پست های تاپیک انتقال می یابد.

حالا می توانیم ایجاد کننده و مالک یک پست را تغییر دهیم و در خروجی نام او را مشخص کنیم.

templates/topic_posts.html (مشاهده کد کامل)

حالا برای نوشتن فایل تست یک فایل جدید با نام test_view_reply_topic.py را درون فولدر boards/tests ایجاد می کنیم.

boards/tests/test_view_reply_topic.py (مشاهده کد کامل)

مورد اصلی مربوط به تست در این قطعه کد، کلاس ReplyTopicTestCase است. در مرحله بعدی می خواهیم چهار کلاس دیگر آن را توسعه دهیم.

در ابتدا دکوراتور login_required@ را بررسی و سپس کدهای وضعیت و وروردی های html را چک می کنیم. در نهایت نیز یک بار فرم را به صورت معتبر و بار دیگر به صورت نامعتبر ارسال می کنیم.

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

 

مطلب بعدی: QuerySets

مطلب قبلی: ویوی پست های یک تاپیک

بدون دیدگاه

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

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

جنگو
Function-Based View

سلام بدون هیچ توضیحی و مطابق با آموزش هایی که تا الان ارائه شده است ویوهایی که تا الان نوشته ایم همگی از نوع تابع و به شکل زیر خواهد است… views.py def new_post(request): if request.method == ‘POST’: form = PostForm(request.POST) if form.is_valid(): form.save() return redirect(‘post_list’) else: form = PostForm() …

جنگو
استراتژی ویوهای مبتنی بر کلاس

سلام در این فصل قصد داریم ویوهای برنامه را با استفاده از مفهوم کلاس پیاده سازی کنیم. مسلماً باید به کدهای قبلی برگردیم و بخش هایی از آن را تغییر دهیم. بعد هم به مسائل مهم دیگر مثل صفحه بندی و شماره گذاری صفحات، Markdownها و حتی یک ویرایشگر ساده …

جنگو
مهاجرت

سلام مهاجرت یکی از بخش ها و بحث های بنیادی در برنامه نویسی تحت وب با جنگو است. مهاجرت مربوط به توسعۀ مدل های مربوط به برنامه در شرایطی می شود که بعد از توسعۀ مدل ها، به صورت خودکار دیتابیس نیز خود را با مدل ها بروز رسانی کند …

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