list.html 6.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150
  1. {% extends "base.html" %}
  2. {% load static %}
  3. {% block title %}
  4. 首页
  5. {% endblock title %}
  6. {% block content %}
  7. <div class="container">
  8. <hr>
  9. <nav aria-label="breadcrumb">
  10. <ol class="breadcrumb">
  11. <li class="breadcrumb-item">
  12. <a href="{% url 'article:article_list' %}?search={{ search }}&tag={{ tag }}&column={{ column }}">
  13. 最新
  14. </a>
  15. </li>
  16. <li class="breadcrumb-item">
  17. <a href="{% url 'article:article_list' %}?order=total_views&search={{ search }}&tag={{ tag }}&column={{ column }}">
  18. 最热
  19. </a>
  20. </li>
  21. </ol>
  22. </nav>
  23. <div class="row">
  24. <div class="col-auto mr-auto">
  25. <form class="form-inline">
  26. <label class="sr-only">
  27. content
  28. </label>
  29. <input type="text" class="form-control mb-2 mr-sm-2" name="search" placeholder="搜索文章..." required>
  30. </form>
  31. </div>
  32. </div>
  33. {% if search %}
  34. {% if articles %}
  35. <h4>
  36. <span style="color: red">"{{ search }}"</span>的搜索结果如下:
  37. </h4>
  38. <hr>
  39. {% else %}
  40. <h4>
  41. 暂无
  42. <span style="color: red">"{{ search }}"</span>有关的文章。
  43. </h4>
  44. {% endif %}
  45. {% endif %}
  46. <div class="row mt-2">
  47. {% for article in articles %}
  48. <!--标题图-->
  49. {% if article.avatar %}
  50. <div class="col-3">
  51. <img src="{{ article.avatar.url }}"
  52. alt="avatar"
  53. style="max-width: 100%; border-radius: 20px;"
  54. >
  55. </div>
  56. {% endif %}
  57. <div class="col">
  58. {% if article.column %}
  59. <button type="button"
  60. onclick="window.open('{% url 'article:article_list' %}?search={{ search }}&tag={{ tag }}&column={{ article.column.id }}')"
  61. class="btn btn-sm mb-2
  62. {% if article.column.title == 'Django' %}
  63. btn-success
  64. {% elif article.column.title == 'Java' %}
  65. btn-danger
  66. {% elif article.column.title == 'HTML' %}
  67. btn-warning
  68. {% endif %}
  69. "
  70. >
  71. {{ article.column }}
  72. </button>
  73. {% endif %}
  74. <!--标签-->
  75. <span>
  76. {% for tag in article.tags.all %}
  77. <a href="{% url 'article:article_list' %}?tag={{ tag }}&search={{ search }}&column={{ column }}"
  78. class="badge badge-secondary">
  79. {{ tag }}
  80. </a>
  81. {% endfor %}
  82. </span>
  83. <!--标题-->
  84. <h4>
  85. <b>
  86. <a href="{% url 'article:article_detail' article.id %}" style="color: black;">
  87. {{ article.title }}
  88. </a>
  89. </b>
  90. </h4>
  91. <!--摘要-->
  92. <div>
  93. <p style="color: gray;">
  94. {{ article.body|slice:'100' }}...
  95. </p>
  96. </div>
  97. <!--注脚-->
  98. <p>
  99. <!--附加消息-->
  100. <span style="color: green;">
  101. {{ article.total_views }}浏览&nbsp;&nbsp;&nbsp;
  102. </span>
  103. <span style="color: blue;">
  104. {{ article.created|date:'Y-m-d' }}发布&nbsp;&nbsp;&nbsp;
  105. </span>
  106. <span style="color: darkred;">
  107. {{ article.updated|date:'Y-m-d' }}更新
  108. </span>
  109. </p>
  110. <hr>
  111. </div>
  112. <hr style="width:100%;"/>
  113. {% endfor %}
  114. </div>
  115. <div class="pagination row">
  116. <div class="m-auto">
  117. <span class="step-links">
  118. <!--如果不是第一页,则显示上翻的按钮-->
  119. {% if articles.has_previous %}
  120. <a href="?page=1&order={{ order }}&search={{ search }}&tag={{ tag }}&column={{ column }}"
  121. class="btn btn-success">
  122. &laquo;1
  123. </a>
  124. <span>...</span>
  125. <a href="?page={{ articles.previous_page_number }}&order={{ order }}&search={{ search }}&tag={{ tag }}&column={{ column }}"
  126. class="btn btn-secondary">
  127. {{ articles.previous_page_number }}
  128. </a>
  129. {% endif %}
  130. <!--当前页面-->
  131. <span class="current btn btn-danger btn-lg">
  132. {{ articles.number }}
  133. </span>
  134. {% if articles.has_next %}
  135. <a href="?page={{ articles.next_page_number }}&order={{ order }}&search={{ search }}&tag={{ tag }}&column={{ column }}"
  136. class="btn btn-secondary">
  137. {{ articles.next_page_number }}
  138. </a>
  139. <span>...</span>
  140. <a href="?page={{ articles.paginator.num_pages }}&order={{ order }}&search={{ search }}&tag={{ tag }}&column={{ column }}"
  141. class="btn btn-success">
  142. {{ articles.paginator.num_pages }} &raquo
  143. </a>
  144. {% endif %}
  145. </span>
  146. </div>
  147. </div>
  148. </div>
  149. {% endblock content %}