This example shows, how to use database views with django models. NewestArticle models contains 100 newest Articles. Remember, that NewestArticle model is read-only. Tested with mysql.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | class ArticleBase(models.Model):
title = models.CharField(max_length=32, db_index=True)
date_time = models.DateTimeField(auto_now=True, db_index=True)
text = models.TextField()
authors = models.ManyToManyField('Author')
class Meta:
abstract = True
ordering = ( '-date_time', )
class Article(ArticleBase):
pass
class NewestArticle(ArticleBase)
""" READ ONLY MODEL """
def save(self, **kwargs):
raise NotImplementedError
DROP TABLE app_newestarticle_authors;
DROP TABLE app_newestarticle;
CRETAE VIEW app_newestarticle AS SELECT * FROM app_article ORDER BY date_time DESC LIMIT 100;
CRETAE VIEW app_newestarticle_authors AS SELECT article_id newestarticle_id, author_id FROM app_article_authors;
|
More like this
- Template tag - list punctuation for a list of items by shapiromatron 10 months, 3 weeks ago
- JSONRequestMiddleware adds a .json() method to your HttpRequests by cdcarter 11 months ago
- Serializer factory with Django Rest Framework by julio 1 year, 5 months ago
- Image compression before saving the new model / work with JPG, PNG by Schleidens 1 year, 6 months ago
- Help text hyperlinks by sa2812 1 year, 7 months ago
Comments
Please login first before commenting.