Last active
January 1, 2016 17:59
-
-
Save JuniorLima/8181253 to your computer and use it in GitHub Desktop.
Modelo de banco de notícias com classe abstrata ou não.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
class BaseNoticia(models.Model): | |
publicar = models.BooleanField(default=True) | |
destaque = models.BooleanField(default=False) | |
titulo = models.CharField(max_length=100, unique=True) | |
conteudo = models.TextField('Conteúdo') | |
slug = models.SlugField(max_length=150, blank=True, unique=True) | |
criado_em = models.DateTimeField(auto_now_add=True) | |
atualizado_em = models.DateTimeField(auto_now=True) | |
cliques = models.IntegerField('Cliques', default=0, editable=False) | |
usuario = models.ForeignKey(User, related_name='user_add_%(class)ss', blank=True, null=True) | |
usuario_modificou = models.ForeignKey(User, related_name='user_mod_%(class)ss', blank=True, null=True) | |
class Noticia(BaseNoticia): | |
chamada = models.CharField(max_length=30) | |
categoria_nome = models.ForeignKey(Categoria, verbose_name='Categoria') | |
imagem = ImageWithThumbsField('Imagem Destaque', upload_to='pasta', sizes=((800,600),(300,225))) | |
class NoticiaBlog(BaseNoticia): | |
imagem = ImageWithThumbsField('Imagem Destaque', upload_to='pasta', sizes=((800,600),(300,225)), blank=True, null=True) | |
blog = models.ForeignKey(BlogUsuario, verbose_name='Blog') | |
class Galeria(BaseNoticia): | |
chamada = models.CharField(max_length=30) | |
imagem = ImageWithThumbsField('Imagem Destaque', upload_to='galeria', sizes=((800,600),(300,225))) |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
class BaseNoticiaAbstract(models.Model): | |
publicar = models.BooleanField(default=True) | |
destaque = models.BooleanField(default=False) | |
titulo = models.CharField(max_length=100, unique=True) | |
conteudo = models.TextField('Conteúdo') | |
slug = models.SlugField(max_length=150, blank=True, unique=True) | |
criado_em = models.DateTimeField(auto_now_add=True) | |
atualizado_em = models.DateTimeField(auto_now=True) | |
cliques = models.IntegerField('Cliques', default=0, editable=False) | |
usuario = models.ForeignKey(User, related_name='user_add_%(class)ss', blank=True, null=True) | |
usuario_modificou = models.ForeignKey(User, related_name='user_mod_%(class)ss', blank=True, null=True) | |
class Meta: | |
abstract = True | |
class Noticia(BaseNoticiaAbstract): | |
chamada = models.CharField(max_length=30) | |
categoria_nome = models.ForeignKey(Categoria, verbose_name='Categoria') | |
imagem = ImageWithThumbsField('Imagem Destaque', upload_to='pasta', sizes=((800,600),(300,225))) | |
class NoticiaBlog(BaseNoticiaAbstract): | |
imagem = ImageWithThumbsField('Imagem Destaque', upload_to='pasta', sizes=((800,600),(300,225)), blank=True, null=True) | |
blog = models.ForeignKey(BlogUsuario, verbose_name='Blog') | |
class Galeria(BaseNoticiaAbstract): | |
chamada = models.CharField(max_length=30) | |
imagem = ImageWithThumbsField('Imagem Destaque', upload_to='galeria', sizes=((800,600),(300,225))) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Suponha que eu vou colocar as noticias em destaque através do campo DESTAQUE
No primeiro exemplo, eu tenho a tabela NOTICIA que pode ser GALERIA ou NOTICIABLOG e já fazer a filtragem direto com os resultados que possuem o booleano DESTAQUE como True.
No segundo exemplo, eu pego NOTICIA, GALERIA e BLOG e junto os resultados que possuem o booleano DESTAQUE como True.
Qual modelo utilizo você recomenda ?