diff options
Diffstat (limited to 'tests/testapp/models/custom_methods.py')
| -rw-r--r-- | tests/testapp/models/custom_methods.py | 72 |
1 files changed, 0 insertions, 72 deletions
diff --git a/tests/testapp/models/custom_methods.py b/tests/testapp/models/custom_methods.py deleted file mode 100644 index 4f175752b4..0000000000 --- a/tests/testapp/models/custom_methods.py +++ /dev/null @@ -1,72 +0,0 @@ -""" -3. Giving models custom methods and custom module-level functions - -Any method you add to a model will be available to instances. - -Custom methods have the same namespace as if the model class were defined -in the dynamically-generated module. That is, methods can access -``get_list()``, ``get_object()``, ``AddManipulator``, and all other -module-level objects. - -Also, custom methods have access to a few commonly-used objects for -convenience: - - * The ``datetime`` module from Python's standard library. - * The ``db`` object from ``django.core.db``. This represents the database - connection, so you can do custom queries via a cursor object. - -If your model method starts with "_module_", it'll be a module-level function -instead of a method. Otherwise, custom module-level functions have the same -namespace as custom methods. -""" - -from django.core import meta - -class Article(meta.Model): - headline = meta.CharField(maxlength=100) - pub_date = meta.DateField() - - def __repr__(self): - return self.headline - - def was_published_today(self): - return self.pub_date == datetime.date.today() - - def get_articles_from_same_day_1(self): - return get_list(id__ne=self.id, pub_date__exact=self.pub_date) - - def get_articles_from_same_day_2(self): - """ - Verbose version of get_articles_from_same_day_1, which does a custom - database query for the sake of demonstration. - """ - cursor = db.cursor() - cursor.execute(""" - SELECT id, headline, pub_date - FROM custom_methods_articles - WHERE pub_date = %s - AND id != %s""", [str(self.pub_date), self.id]) - # The asterisk in "Article(*row)" tells Python to expand the list into - # positional arguments to Article(). - return [Article(*row) for row in cursor.fetchall()] - -API_TESTS = """ -# Create a couple of Articles. ->>> from datetime import date ->>> a = articles.Article(id=None, headline='Area man programs in Python', pub_date=date(2005, 7, 27)) ->>> a.save() ->>> b = articles.Article(id=None, headline='Beatles reunite', pub_date=date(2005, 7, 27)) ->>> b.save() - -# Test the custom methods. ->>> a.was_published_today() -False ->>> a.get_articles_from_same_day_1() -[Beatles reunite] ->>> a.get_articles_from_same_day_2() -[Beatles reunite] ->>> b.get_articles_from_same_day_1() -[Area man programs in Python] ->>> b.get_articles_from_same_day_2() -[Area man programs in Python] -""" |
