/tests/modeltests/custom_methods/models.py
https://code.google.com/p/mango-py/ · Python · 36 lines · 21 code · 6 blank · 9 comment · 1 complexity · 9d4444decb627578caf2653c9d83a5f1 MD5 · raw file
- """
- 3. Giving models custom methods
- Any method you add to a model will be available to instances.
- """
- from django.db import models
- import datetime
- class Article(models.Model):
- headline = models.CharField(max_length=100)
- pub_date = models.DateField()
- def __unicode__(self):
- return self.headline
- def was_published_today(self):
- return self.pub_date == datetime.date.today()
- def articles_from_same_day_1(self):
- return Article.objects.filter(pub_date=self.pub_date).exclude(id=self.id)
- def 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.
- """
- from django.db import connection
- cursor = connection.cursor()
- cursor.execute("""
- SELECT id, headline, pub_date
- FROM custom_methods_article
- WHERE pub_date = %s
- AND id != %s""", [connection.ops.value_to_db_date(self.pub_date),
- self.id])
- return [self.__class__(*row) for row in cursor.fetchall()]