Skip to content

Instantly share code, notes, and snippets.

@bennylope
Created November 16, 2012 15:54
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save bennylope/4088425 to your computer and use it in GitHub Desktop.
Save bennylope/4088425 to your computer and use it in GitHub Desktop.
### MODEL
# -*- coding: utf-8 -*-
"""
Models for the "flatpages" project
"""
import time
import socket
from django.db import models
from django.contrib.auth.models import User
from django.utils.translation import ugettext_lazy as _
from django.contrib.contenttypes import generic
from django.template.defaultfilters import slugify
class Pages(models.Model):
"""
Pages model
"""
user = models.ForeignKey(User, related_name="page_from")
title = models.CharField(_('Title'), max_length=255)
slug = models.CharField(_('Slug'), max_length=200)
text = models.TextField(_('Text'))
date_created = models.DateTimeField(_('Date Created'))
date_modified = models.DateTimeField(_('Date Modified'))
ip = models.CharField(_('IP'), max_length=100)
hits = models.IntegerField(_('Hits'))
status = models.BooleanField(_('Status'), default=True)
# I want to add a "template" field here
def __unicode__(self):
return self.slug
def save(self, *args, **kwargs):
datenow = int(time.time())
"""if self.pk:
self.date_modified = datenow
else:
self.date_created = datenow
self.date_modified = datenow"""
self.ip = socket.gethostbyname(socket.gethostname())
super(Pages, self).save()
class Meta:
verbose_name = _('Page')
verbose_name_plural = _('Pages')
### CBV
class FlatpageDetailView(DetailView):
# template_name=model.objects.get()
# page = get_object_or_404(mymodels.Pages, slug=self.kwargs['render_template']);
# template_name = page.template_name
template_name = "rflatpages/default.html"
context_object_name = "myflatpage"
def __init__(self):
pass
def get_object(self):
if (not self.kwargs['slug']):
self.kwargs['slug'] = 'start'
self.obj = get_object_or_404(mymodels.Pages, slug=self.kwargs['slug'], status=1)
self.obj.hits = self.obj.hits + 1
self.obj.save()
return self.obj
def get_context_data(self, **kwargs):
context = super(FlatpageDetailView, self).get_context_data(**kwargs)
context.update({
})
return context
def get_template_names(self):
"""`get_object` has already set this attribute"""
templates = [self.obj.template]
return templates + super(FlatpageDetailView, self).get_template_names()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment