Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- from django.db import models
- from django.template.defaultfilters import slugify
- from django.core.urlresolvers import reverse
- from authors.models import Author
- from subtopic.models import Subtopic
- from topic.models import Topic
- from keyWords.models import KeyWord
- #Global Vars
- # Create your models here.
- class New(models.Model):
- title = models.CharField(verbose_name='Título', max_length=255, unique=True)
- topic = models.ForeignKey(Topic, verbose_name='Tema', related_name='news', )
- subtopic = models.ForeignKey(Subtopic, verbose_name='Subtema', related_name='news') #Filtramos por Opinion para sacar todas las columnas
- author = models.ForeignKey(Author, verbose_name='Autor', related_name='news')
- keyword = models.ManyToManyField(KeyWord, blank=True, verbose_name='Palabras Clave', related_name='news')
- dateTime = models.DateTimeField(auto_now_add=True, verbose_name='Fecha y Hora')
- place = models.CharField(max_length=255, verbose_name='Lugar')
- content = models.TextField(verbose_name='Contenido')
- source = models.URLField(verbose_name='Fuente', blank=True)
- slug = models.SlugField(verbose_name='Slug', max_length=100, unique=True)
- is_published = models.BooleanField(verbose_name='Publicada', default=False,) #Nueva, para verificar si se publica o no
- times_viewed = models.PositiveIntegerField(default=0, editable=False, verbose_name='Veces Vista' )
- class Meta:
- ordering=['-dateTime']
- verbose_name_plural='Noticias'
- #@models.permalink
- #def get_absolute_url(self):
- # return ('news.views.New_view', None, {'year': self.dateTime.year,
- # 'month': self.dateTime.strftime('%m'),
- # 'day': self.dateTime.strftime('%d'),
- # 'slug': self.slug})
- def first_image(self):
- return self.images.first() # siendo images el related_name en Image
- def first_video(self):
- return self.video.first()
- def get_absolute_url(self):
- return reverse ('NewsDefaultView', args = [str(self.dateTime.strftime("%Y")), str(self.dateTime.strftime("%b")), str(self.dateTime.strftime("%d")), str(self.slug)])
- def get_all_keys(self):
- return '%s, ' % self.keyword
- #def is_published(self): devuelve si la noticia ha sido pulicada para que salga en la lista de noticias
- def __str__(self):
- return self.title
- def save(self): #Definir metodo para guardar, validar y otros metodos del Slug
- super(New, self).save() #Solo con este me funciona correctamente
- if not self.id:
- self.slug = slugify(self.title)
- super(New, self).save()
- from django.core.cache import cache
- from django.db.models.signals import post_save
- from django.dispatch import receiver
- from django.contrib.sessions.models import Session
- @receiver(post_save)
- def clear_cache(sender, **kwargs):
- if sender != Session:
- cache.clear()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement