(91) 350-9520 support@omarine.org M-F: 7 AM - 7 PM; Weekends: 9 AM - 5 PM

Lập trình Web: Python: Django: Xây dựng cửa hàng trực tuyến với Oscar-Paypal, phần 8

18. Promotions

Promotions có thể là một ảnh Tết và thường có danh sách các sản phẩm mới


Danh sách các sản phẩm mới có thể được thay bằng danh sách các sản phẩm bán chạy nhất, tùy theo sắp xếp của cửa hàng. Promotions là những khối nội dung nhỏ được mô hình hóa trên các mô hình Promotion và được nối tới các vị trí của site thông qua mô hình nối trang hoặc mô hình nối từ khóa. Mô hình nối trang thực hiện lọc theo URL của request tới trang để lấy các đối tượng Promotion cho trang đó, còn mô hình nối từ khóa lọc theo từ khóa mà khách hàng gõ vào trong hộp tìm kiếm.
Công việc xử lý ngữ cảnh thực hiện gửi ngữ cảnh tới khuôn mẫu, ví dụ gửi ngữ cảnh chứa khóa promotions_<position>. Trong đó, position chỉ ra vị trí dành cho các đối tượng Promotion trên trang, có thể là page cho phần nội dung chính, và left cho sidebar bên trái. Trong hình ví dụ bên trên, ảnh chúc mừng năm mới nằm trong sidebar và danh sách các sản phẩm mới được trình bày trong phần nội dung chính. Các sản phẩm được trưng bày tự động trên trang đầu mà không cần duyệt thể loại trong “Duyệt lưu”. Nếu không sử dụng Promotions, toàn bộ các phần từ thanh tìm kiếm trở xuống mặc định là không có nội dung.
Giá trị của khóa trong ngữ cảnh là một danh sách các đối tượng Promotion, từ đó khuôn mẫu có thể sử dụng để kết xuất nội dung. Mỗi đối tượng Promotion lại có thể có một khuôn mẫu của chính nó, có tên theo tên lớp chuyển sang các kí tự in thường. Ví dụ lớp RawHTML có khuôn mẫu là 'promotions/rawhtml.html'.
Tạo Promotions rất đơn giản, bạn vào Dashboard, nhấn menu “Nội dung” > “Khối nội dung”. Tuy nhiên, chúng ta cần tùy biến thêm khuôn mẫu.
Theo mặc định, hộp “Duyệt lưu” được thả xuống, như vậy nó sẽ đè lên ảnh trong sidebar. Để xử lý vấn đề đó, bạn tạo thư mục templates/promotions trong dự án, rồi chép khuôn mẫu 'promotions/home.html' của Oscar vào đó. Soạn thảo khuôn mẫu bản sao, thay expand_dropdown=1 với expand_dropdown=0.
Ngoài ra, ảnh theo mặc định không vừa với khung của sidebar. Bạn chép khuôn mẫu 'promotions/image.html', thêm width=100% vào thẻ <img />.
Chúng ta thấy rằng, nguồn mở rất quý và miễn phí nhưng thường không dùng được ngay và chúng ta không thể không bỏ công vào đấy.
Nếu muốn thêm thông tin ví dụ như bản quyền ở cuối trang, bạn tùy biến khuôn mẫu 'partials/footer.html', thêm nội dung vào khối footer, ví dụ:

<br />
<ul class="footer_links inline">
    <li style="color: #808080;">Copyright © 2018 {{ shop_name }}.</li>
</ul>

Biểu tượng favicon cũng cần thay đổi. Để thay biểu tượng của Oscar với biểu tượng của chính cửa hàng, bạn thêm cấu hình dưới đây vào settings.py:

STATICFILES_DIRS = (
    location('static'),
)

Sau đó tạo thư mục static/oscar, rồi đặt favicon.ico của bạn vào đó.

Advertisements

Gửi phản hồi

Website này sử dụng Akismet để hạn chế spam. Tìm hiểu bình luận của bạn được duyệt như thế nào.

%d bloggers like this: