Book Image

Django 1.2 E-commerce

By : Jesse Legg
Book Image

Django 1.2 E-commerce

By: Jesse Legg

Overview of this book

<p>Django is a high-level Python web framework that was developed by a fast-moving online-news operation to meet the stringent twin challenges of newsroom deadlines and the needs of web developers. It provides an excellent basis to build e-commerce websites because it can be deployed fast and it responds quickly to changes due to its ability to handle content problems. Django with its proven strengths is all you need to build powerful e-commerce applications with a competitive edge. <br /><br />This book explores how the Django web framework and its related technologies can power the next leap forward for e-commerce and business on the Web. It shows you how to build real-world applications using this rapid and powerful development tool.<br /><br />The book will enable you to build a high quality e-commerce site quickly and start making money. It starts with the ambitious task of using Django to build a functional e-commerce store in less than 30 minutes, and then proceeds to enhance this design through the rest of the book. The book covers the basics of an e-commerce platform like product catalogs, shopping carts, and payment processing. By the end of the book, you will be able to enhance the application by adding a fully-functional search engine, generating PDF-based reports, adding interactivity to the user-interface, selling digital goods with micropayments, and managing deployment and maintenance tasks.</p>
Table of Contents (16 chapters)
Django 1.2 e-commerce
Credits
About the Author
About the Reviewers
Preface
Index

A simple CRM tool


Django makes it relatively easy to combine the information gathered from the order and shipment process into a simple Customer Relationship Management (CRM) tool. We can simply wrap a generic view to display a list of the logged-in user's orders.

@login_required
def order_list(request, *args, **kwargs):
    queryset = Order.objects.filter(customer=request.user)
    return list_detail.object_list(request, queryset, *args, **kwargs)

This uses the standard Django object_list generic view we've seen from earlier chapters. A detail view on a specific Order object is equally as simple. We will wrap the list_detail.object_detail generic view to ensure that only the current user's Orders can be inspected:

@login_required
def order_detail(request, *args, **kwargs):
    queryset = Order.objects.filter(customer=request.user)
    return list_detail.object_detail(request, queryset, *args, **kwargs)

At first glance these wrapper views seem superfluous, but they are necessary to ensure that...