Skip to content

Instantly share code, notes, and snippets.

@jacobian
Created March 10, 2010 16:47
Show Gist options
  • Save jacobian/328056 to your computer and use it in GitHub Desktop.
Save jacobian/328056 to your computer and use it in GitHub Desktop.
##### yabl/entries/models.py
import datetime
from django.db import models
from yabl.authors.models import Author
class EntryManager(models.Manager):
def future(self):
return self.filter(pub_date__gt=datetime.datetime.now())
def past(self):
return self.filter(pub_date__lt=datetime.datetime.now())
class Entry(models.Model):
author = models.ForeignKey(Author)
pub_date = models.DateTimeField()
is_published = models.BooleanField(default=False)
headline = models.CharField(max_length=200)
slug = models.SlugField()
summary = models.TextField(blank=True)
body = models.TextField(blank=True)
objects = EntryManager()
class Meta:
verbose_name_plural = 'entries'
ordering = ['-pub_date']
def __unicode__(self):
return self.headline
##### yabl/entries/urls.py
from django.conf.urls.defaults import *
urlpatterns = patterns('yabl.entries.views',
(r'^$', 'index'),
('^future/$', 'future'),
('^past/$', 'past'),
(r'^([\w-]+)/$', 'detail'),
)
##### yabl/entries/views.py
from django.shortcuts import render_to_response, get_object_or_404
from yabl.entries.models import Entry
def index(request):
return render_to_response(
'entries/list.html',
{'entries': Entry.objects.all()}
)
def future(request):
return render_to_response(
'entries/list.html',
{'entries': Entry.objects.future()}
)
def past(request):
return render_to_response(
'entries/list.html',
{'entries': Entry.objects.past()}
)
def detail(request, slug):
return render_to_response(
'entries/detail.html',
{'entry': get_object_or_404(Entry, slug=slug)}
)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment