summaryrefslogtreecommitdiff
path: root/tests/testapp/models/basic.py
diff options
context:
space:
mode:
Diffstat (limited to 'tests/testapp/models/basic.py')
-rw-r--r--tests/testapp/models/basic.py68
1 files changed, 68 insertions, 0 deletions
diff --git a/tests/testapp/models/basic.py b/tests/testapp/models/basic.py
new file mode 100644
index 0000000000..9b9b8082a2
--- /dev/null
+++ b/tests/testapp/models/basic.py
@@ -0,0 +1,68 @@
+"""
+1. Bare-bones model
+
+This is a basic model with only two non-primary-key fields.
+"""
+
+from django.core import meta
+
+class Article(meta.Model):
+ fields = (
+ meta.CharField('headline', maxlength=100),
+ meta.DateTimeField('pub_date'),
+ )
+
+API_TESTS = """
+# No articles are in the system yet.
+>>> articles.get_list()
+[]
+
+# Create an Article.
+>>> from datetime import datetime
+>>> a = articles.Article(id=None, headline='Area man programs in Python', pub_date=datetime(2005, 7, 28))
+
+# Save it into the database. You have to call save() explicitly.
+>>> a.save()
+
+# Now it has an ID. Note it's a long integer, as designated by the trailing "L".
+>>> a.id
+1L
+
+# Access database columns via Python attributes.
+>>> a.headline
+'Area man programs in Python'
+>>> a.pub_date
+datetime.datetime(2005, 7, 28, 0, 0)
+
+# Change values by changing the attributes, then calling save().
+>>> a.headline = 'Area woman programs in Python'
+>>> a.save()
+
+# get_list() displays all the articles in the database. Note that the article
+# is represented by "<Article object>", because we haven't given the Article
+# model a __repr__() method.
+>>> articles.get_list()
+[<Article object>]
+
+# Django provides a rich database lookup API that's entirely driven by
+# keyword arguments.
+>>> articles.get_object(id__exact=1)
+<Article object>
+>>> articles.get_object(headline__startswith='Area woman')
+<Article object>
+>>> articles.get_object(pub_date__year=2005)
+<Article object>
+
+# Django raises an ArticleDoesNotExist exception for get_object()
+>>> articles.get_object(id__exact=2)
+Traceback (most recent call last):
+ ...
+ArticleDoesNotExist: Article does not exist for {'id__exact': 2}
+
+# Lookup by a primary key is the most common case, so Django provides a
+# shortcut for primary-key exact lookups.
+# The following is identical to articles.get_object(id__exact=1).
+>>> articles.get_object(pk=1)
+<Article object>
+
+"""