میخواهیم یک سایت خرید اینترنتی محصولات مختلف بزنیم. در این سایت کاربران میتوانند محصولات مختلف را مشاهده کرده و پس از انتخاب چند محصول فاکتور نهایی خرید خود را بینند.
بخشی از این پروژه نوشته شده است. از شما میخواهیم این پروژه را تکمیل کنید.
پروژه اولیه را از این لینک دانلود کنید. ساختار این پروژه به شرح زیر است:
در فایل models.py
چهار مدل به شرح زیر وجود دارد:
Category
این مدل شامل فیلد زیر است:
name
Product
این مدل شامل فیلدهای زیر است:
name
category
description
price
stock
Order
این مدل شامل فیلدهای زیر است:
email
address
OrderItem
این مدل شامل فیلدهای زیر است:
order
product
quantity
مواردی که باید انجام دهید:
یک منیجر جدید به نام available
برای مدل Product
بنویسید به طوری که فقط کالاهایی را که در انبار موجودند برگرداند.
در این قسمت باید یک مدلفرم برای مدل Product
بنویسید. برای این کار، فایل apps/forms.py
دارای یک کلاس ProductForm
است که باید آن را پیادهسازی کنید. کالاهایی که به وسیلهی این فرم ساخته میشوند باید ویژگیهای زیر را دارا باشند:
ValidationError
با پیام Product is too expensive
پرتاب شود.ValidationError
با پیام Product must have a good description
پرتاب شود.order
در این قسمت باید view محاسبه قیمت نهایی order
را (checkout
) طوری تغییر دهید که قیمت نهایی یک order
مشخص (int:pk
) را به صورت یک خروجی JSON به شکل زیر برگرداند.
Decimal
می باشد و باید تا دو رقم اعشار مقدار آن حفظ شود.404
برگردانید.در فایلهای اولیهای که دانلود کردید یکسری داده اولیه به عنوان نمونه قرار داده شده است. میتوانید قبل از فرستادن سوال در سایت، این تستها را ببینید تا با نحوه داوری ما آشنا شوید و از پاسخ خود اطمینان حاصل نمایید.
تستها را میتوانید با دستور زیر اجرا کنید:
app/views.py
، app/models.py
و app/forms.py
هستید.
اگر تغییری در سایر فایلها ایجاد کنید، این تغییرات نادیده گرفته خواهد شد.testsample.py
با روش تست کردن آشنا شوید.یک فایل ZIP حاوی همهی فایلهای پروژه، آپلود کنید. نام فایل ZIP اهمیتی ندارد.