Fixed small typo in overview

git-svn-id: http://code.djangoproject.com/svn/django/trunk@90 bcc190cf-cafb-0310-a4f2-bffc1f526a37
This commit is contained in:
Adrian Holovaty 2005-07-16 02:40:24 +00:00
parent 8d0610d054
commit 07c8a965b6
1 changed files with 24 additions and 24 deletions

View File

@ -24,10 +24,10 @@ solving two years' worth of database-schema problems. Here's a quick example::
fields = (
meta.CharField('full_name', "reporter's full name", maxlength=70),
)
def __repr__(self):
return self.full_name
class Article(meta.Model):
fields = (
meta.DateTimeField('pub_date', 'publication date'),
@ -35,7 +35,7 @@ solving two years' worth of database-schema problems. Here's a quick example::
meta.TextField('article', 'article'),
meta.ForeignKey(Reporter),
)
def __repr__(self):
return self.headline
@ -58,29 +58,29 @@ is created on the fly: No code generation necessary::
# Modules are dynamically created within django.models.
# Their names are plural versions of the model class names.
>>> from django.models.news import reporters, articles
# No reporters are in the system yet.
>>> reporters.get_list()
[]
# Create a new Reporter.
>>> r = reporters.Reporter(id=None, full_name='John Smith')
# Save the object into the database. You have to call save() explicitly.
>>> r.save()
# Now it has an ID.
>>> r.id
1
# Now the new reporter is in the database.
>>> reporters.get_list()
[John Smith]
# Fields are represented as attributes on the Python object.
>>> r.full_name
'John Smith'
# Django provides a rich database lookup API that's entirely driven by keyword arguments.
>>> reporters.get_object(id__exact=1)
John Smith
@ -91,35 +91,35 @@ is created on the fly: No code generation necessary::
>>> reporters.get_object(id__exact=2)
Traceback (most recent call last):
...
django.models.polls.ReporterDoesNotExist: Reporter does not exist for {'id__exact': 2}
django.models.news.ReporterDoesNotExist: Reporter does not exist for {'id__exact': 2}
# Create an article.
>>> from datetime import datetime
>>> a = articles.Article(id=None, pub_date=datetime.now(), headline='Django is cool', article='Yeah.', reporter_id=1)
>>> a.save()
# Now the article is in the database.
>>> articles.get_list()
[Django is cool]
# Article objects get API access to related Reporter objects.
>>> r = a.get_reporter()
>>> r.full_name
'John Smith'
# And vice versa: Reporter objects get API access to Article objects.
>>> r.get_article_list()
[Django is cool]
# The API follows relationships as far as you need.
# Find all articles by a reporter whose name starts with "John".
>>> articles.get_list(reporter__full_name__startswith="John")
[Django is cool]
# Change an object by altering its attributes and calling save().
>>> r.full_name = 'Billy Goat'
>>> r.save()
# Delete an object with delete().
>>> r.delete()
@ -167,7 +167,7 @@ To design URLs for an app, you create a Python module. For the above
Reporter/Article example, here's what that might look like::
from django.conf.urls.defaults import *
urlpatterns = patterns('',
(r'^/articles/(?P\d{4})/$', 'myproject.news.views.articles.year_archive'),
(r'^/articles/(?P\d{4})/(?P\d{2})/$', 'myproject.news.views.articles.month_archive'),
@ -205,7 +205,7 @@ and renders the template with the retrieved data. Here's an example view for
article_detail from above::
from django.models.news import articles
def article_detail(request, year, month, article_id):
# Use the Django API to find an object matching the URL criteria.
try:
@ -235,9 +235,9 @@ Let's say the ``news/article_detail`` template was found. Here's what that might
look like::
{% extends "base" %}
{% block title %}{{ article.headline }}{% endblock %}
{% block content %}
<h1>{{ article.headline }}</h1>
<p>By {{ article.get_reporter.full_name }}</p>
@ -270,7 +270,7 @@ template has to define only what's unique to that template.
Here's what the "base" template might look like::
<html>
<head>
<title>{% block title %}</title>
@ -300,7 +300,7 @@ This has been only a quick overview of Django's functionality. Some more useful
features:
* A caching framework that integrates with memcached or other backends.
* An RSS framework that makes creating RSS feeds as easy as writing a
* An RSS framework that makes creating RSS feeds as easy as writing a
small Python class.
* More sexy automatically-generated admin features -- this overview barely
scratched the surface