Book Image

Django 1.0 Website Development

Book Image

Django 1.0 Website Development

Overview of this book

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 is designed to promote rapid development and clean, pragmatic design and lets you build high-performing, elegant web applications rapidly. Django focuses on automating as much as possible and adhering to the DRY (Don't Repeat Yourself) principle, making it easier to build high-performance web applications faster, with less code. This book will show you how to assemble Django's features and take advantage of its power to design, develop, and deploy a fully-featured web site. It will walk you through the creation of an example web application, with lots of code examples. Specially revised for version 1.0 of Django, the book starts by introducing the main design concepts in Django. Next, it leads you through the process of installing Django on your system. After that, you will start right away on building your social bookmarking application using Django. Various Django 1.0 components and sub-frameworks will be explained during this process, and you will learn about them by example. In each chapter, you will build one or more of the features that are essential in Web 2.0 applications, like user management, tags, and AJAX. You will also learn about good software development practices, such as keeping your application secure, and automating testing with unit tests. By the end of the book, you will have built a fully functional real-life Web 2.0 application, and learned how to deploy it to a production server.
Table of Contents (17 chapters)
Django 1.0 Web Site Development
Credits
About the author
About the reviewer
Preface

The tag data model


Tags need to be stored in the database and must be associated with bookmarks. So, the first step in introducing tags to our project is creating a data model for tags. A tag object will only hold one piece of data—a string that represents the tag. In addition, we need to maintain a list of tags associated with a particular bookmark. You may recall from Chapter 3 that we used foreign keys to associate bookmarks with users, and called this a one-to-many relationship. However, the relationship between tags and bookmarks is not one-to-many because one tag can be associated with many bookmarks, and one bookmark can also have many tags associated with it. This is called a many-to-many relationship, and is represented in Django models using models.ManyToManyField.

You should be well aware by now that data models go into the bookmarks/models.py file, so open the file and add the following Tag class to it:

class Tag(models.Model):
  name = models.CharField(max_length=64, unique=True...