Version 6 (modified by anonymous, 9 years ago) (diff)


Django Cheat Sheet

The django tutorials are quite good. The goal of this cheat sheet is to create a quick start guide so that after reading the tuts over once or twice you have a more handy reference. Things in this guide are done the 'right' way with generic views and templates right off the bat. Please please add to this page.

Starting a project… startproject AcmeIntranet
cd AcmeIntranet
mkdir templates
mkdir media

  • edit your database settings
  • set path to media dir ( e.g. /home/joe/AcmeIntranet/media )
    • media contains public files such as css and js files
  • set path to template dir
    • templates contains django html templates
    • your applications will likely have their own template dirs. Remember to add those as you create them
python syncdb

Creating an invoices application…

python startapp invoices

add 'AcmeIntranet.invoices', to INSTALLED_APPS list in

Create your data model

from django.db import models
from django.contrib.auth.models import User

class Ticket (models.Model):
  user = models.ForeignKey (User) 
  case_number = models.IntegerField()
  dollar_amount = models.FloatField('Cost (in dollars)', max_digits=10, decimal_places=2)

see: model api, model examples

validate your model and and commit to database:

python validate
python sql invoices
python syncdb

Design your urls

in the project root directory, edit

(r'^invoices/', include('AcmeIntranet.invoices.urls')) 

in the invoices app directory create

from django.conf.urls.defaults import *
from jmgenie.dbdoorman.models import Ticket

info_dict = {
  'queryset': Ticket.objects.all()

urlpatterns = patterns('',
    (r'^$', 'django.views.generic.list_detail.object_list', info_dict),
    (r'^new/$', 'django.views.generic.create_update.create_object', { 'model': Ticket } ),
    (r'^(?P<object_id>\d+)/$', 'django.views.generic.list_detail.object_detail', info_dict),

see: generic views

Create your templates

First create Acme_base.html in templates

Next create invoice_list.html in templates/invoices

{% extends "Acme_base.html" %}

{% block title %} Listing Invoices {% endblock %}

{% block content %}
  {% for invoice in object_list %}
    <p>{{ invoice.dollar_ammount }}</p>
  {% endfor %}
{% endblock %}

see: template authoring guide

Back to Top