from django.db import models from django.contrib.auth.models import User from jayparlar.tags.models import TaggedItem from django.contrib.markup.templatetags.markup import markdown STATUS_CHOICES = ( ('Draft','Draft'), ('Published','Published') ) class Post(models.Model): title = models.CharField(maxlength=200) slug = models.SlugField(prepopulate_from=('title',)) pub_date = models.DateTimeField('date published', auto_now_add=True) body = models.TextField() body_html = models.TextField(blank=True) tags = models.GenericRelation(TaggedItem) image = models.ImageField(upload_to='images/', blank=True) author = models.ForeignKey(User) status = models.CharField(maxlength=32, choices=STATUS_CHOICES,radio_admin=True, default='Draft') def save(self): self.body_html = markdown(self.body) super(Post, self).save() class Meta: ordering = ('-pub_date',) get_latest_by = 'pub_date' db_table = "blog_posts" class Admin: list_display = ('title','pub_date', 'tag_list') js = ["js/MochiKit/MochiKit.js", "js/modify_post_admin.js"] def tag_list(self): return ", ".join([tag.tag for tag in self.tags.all()]) def __str__(self): return self.title def get_absolute_url(self): return "/blog/%s/%s/" % (self.pub_date.strftime("%Y/%m/%d"), self.slug)