Here is my blog application, which contains the two models:

from django.db import models
from django.db.models import permalink
from django.core import urlresolvers
from django.contrib.auth.models import User
from django.template.defaultfilters import slugify

import datetime
# Create your models here.

class Category(models.Model):
    """ A Category is a way to manage the taxonomy of the site"""
    name=models.CharField(max_length=50) #The name of the category
    description=models.TextField()
    slug=models.CharField(max_length=75, null=True, blank=True)
    active=models.BooleanField()
    generate_feed=models.BooleanField()
    parent=models.ForeignKey('self', null=True, blank=True)
    def __unicode__(self):
        return self.name
    def save(self):
        if not self.slug:
            self.slug = slugify(self.name)
        super(Category, self).save()
    def num_entries(self):
        """Returns the number of entries in this category"""
        return self.entry_set.count()
    num_entries.short_description = "Number of Entries"
    def get_absolute_url(self):
        """Get the URL of this entry to create a permalink"""
        return ('cat-detail', (), {
            "slug": self.slug
            })
    get_absolute_url = permalink(get_absolute_url)
    class Meta:
        verbose_name_plural = 'Categories'
    class Admin:
        fields = (
                  ('Category Details', {'fields': ('name',
'description', 'parent',)}),
                  ('Category Settings', {'fields': ('active',
'generate_feed', 'slug',)}),
        )
        list_display = ('name', 'slug', 'active', 'generate_feed',
'num_entries', 'parent',)
        search_fields = ['name','parent']

PUBLISHED_CHOICES = (
    (0, 'Draft'),
    (1, 'Pending Review'),
    (2, 'Published'),
    (3, 'Archived'),
)

class Entry(models.Model):
    title=models.CharField(max_length=255)
    body=models.TextField()
    user=models.ForeignKey(User)
    slug=models.CharField(max_length=75, null=True, blank=True)
    pub_date=models.DateTimeField('date published')
    published=models.IntegerField(max_length=1,
choices=PUBLISHED_CHOICES, verbose_name="Publishing Status")
    front_page=models.BooleanField(default=True)
    sticky=models.BooleanField()
    allow_comments=models.BooleanField(default=True)
    truncate=models.BooleanField()
    categories=models.ManyToManyField(Category, limit_choices_to = {'active':1})
    def save(self):
        if not self.slug:
            self.slug = slugify(self.title)
        super(Entry, self).save()
    def __unicode__(self):
        return "%s" % self.title
    def was_published_today(self):
        """Flag to show if post was published today"""
        return self.pub_date.date() == datetime.date.today()
    was_published_today.short_description = 'Published today?'
    def is_published(self):
        return bool(self.published==2)
    is_published.short_description = 'Has Been Published?'
    def get_absolute_url(self):
        """Get the URL of this entry to create a permalink"""
        return ('news-detail', (), {
            "slug": self.slug,
            "year":self.pub_date.year,
            "month":self.pub_date.strftime("%b").lower(),
            "day":self.pub_date.day
            })
    get_absolute_url = permalink(get_absolute_url)
    class Meta:
        verbose_name_plural = 'Entries'
        ordering = ['-pub_date']
    class Admin:
       fields = (
                  ('Entry Content', {'fields': ('title', 'body',
'user', 'categories')}),
                  ('Date information', {'fields': ('pub_date',)}),
                  ('Publishing Details', {'fields': ('slug',
'published', 'front_page', 'allow_comments', 'sticky', 'truncate')}),
        )
       list_display = ('title', 'user', 'front_page', 'sticky',
'allow_comments', 'truncate', 'pub_date', 'is_published',
'was_published_today', )
       list_filter = ['pub_date', 'categories']
       search_fields = ['body', 'title']
       date_hierarchy = 'pub_date'
       ordering = ('pub_date',)

On Dec 5, 2007 6:28 PM, RajeshD <[EMAIL PROTECTED]> wrote:
>
>
> >
> > Hope that makes sense, as if I can do it this way instead of
> > calculating it on the view, that would make this inclusion tag so much
> > easier.
>
> What does your Entry model look like?
>
> >
>



-- 
Tane Piper
Blog - http://digitalspaghetti.me.uk
AJAX Pastebin - http://pastemonkey.org

This email is: [ ] blogable [ x ] ask first [ ] private

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Django users" group.
To post to this group, send email to django-users@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/django-users?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to