models.py 2.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. from django.contrib import admin
  2. from django.db import models
  3. class Article(models.Model):
  4. CATEGORY_CHOICES = [
  5. ('professional', '专业介绍'),
  6. ('leader', '领导分工'),
  7. ('academic_leader', '学院学科建设带头人教师'),
  8. ('computer_science', '计算机系教师'),
  9. ('software_engineering', '软件工程系教师'),
  10. ('digital_media', '数字媒体技术系教师'),
  11. ('iot_networking', '物联网与网络工程系教师'),
  12. ('math_teaching', '数学教研室教师'),
  13. ('party_work', '党政学工队伍教师'),
  14. ('scientific', '教学科研'),
  15. ('party_dynamic', '党建动态'),
  16. ('youth_dynamic', '团学动态'),
  17. ('admissions', '招生'),
  18. ('employment', '就业'),
  19. ]
  20. title = models.CharField(max_length=200, verbose_name='标题')
  21. markdown_content = models.TextField(verbose_name='markdown内容')
  22. html_content = models.TextField(verbose_name='html内容',blank=True)
  23. created_at = models.DateTimeField(auto_now_add=True, verbose_name='创建时间')
  24. updated_at = models.DateTimeField(auto_now=True, verbose_name='更新时间')
  25. category = models.CharField(max_length=50, choices=CATEGORY_CHOICES, verbose_name='文章分类')
  26. cover = models.URLField(verbose_name='封面',blank=True)
  27. class Meta:
  28. ordering = ['-created_at']
  29. def __str__(self):
  30. return self.title
  31. class ArticleAdmin(admin.ModelAdmin):
  32. # 列表显示字段
  33. list_display = ['title', 'category', 'created_at','updated_at']
  34. # 列表页链接字段(可点击进入编辑)
  35. list_display_links = ['title']
  36. # 侧边栏过滤器
  37. list_filter = [
  38. 'category', # 分类过滤器
  39. ]
  40. # 搜索框
  41. search_fields = ['title']
  42. # 每页显示数量
  43. list_per_page = 20
  44. class Banner(models.Model):
  45. title = models.CharField(max_length=200, verbose_name='标题')
  46. url = models.URLField(verbose_name='链接')
  47. order = models.IntegerField(default=0, verbose_name='序号')
  48. class Meta:
  49. ordering = ['-order']
  50. def __str__(self):
  51. return self.title