models.py 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940
  1. from django.db import models
  2. # 导入内建的User模型
  3. from django.contrib.auth.models import User
  4. # timezone用于处理时间相关的事物
  5. from django.utils import timezone
  6. from django.urls import reverse
  7. from taggit.managers import TaggableManager
  8. class ArticleColumn(models.Model):
  9. title = models.CharField(max_length=100, blank=True)
  10. created = models.DateTimeField(default=timezone.now)
  11. def __str__(self):
  12. return self.title
  13. # 博客文章数据模型
  14. class ArticlePost(models.Model):
  15. author = models.ForeignKey(User, on_delete=models.CASCADE)
  16. title = models.CharField(max_length=100)
  17. body = models.TextField()
  18. tags = TaggableManager(blank=True)
  19. created = models.DateTimeField(default=timezone.now) # 使用timezone.now()时 进行数据迁移会,有警告
  20. updated = models.DateTimeField(default=timezone.now)
  21. total_views = models.PositiveIntegerField(default=0)
  22. column = models.ForeignKey(ArticleColumn,
  23. null=True,
  24. blank=True,
  25. on_delete=models.CASCADE,
  26. related_name='article')
  27. class Meta:
  28. ordering = ('-created',)
  29. def __str__(self):
  30. return self.title
  31. def get_absolute_url(self):
  32. return reverse('article:article_detail', args=[self.id])