Django 日期视图筛选
APP里面路由函数
urls.py
path('<int:year>/<int:month>.html', views.date.as_view(), name='date')
views.py
class date(MonthArchiveView):
allow_empty = True # 允许数据不存在显示页面
allow_future = True # 允许显示未来日期
context_object_name = 'mylist' # 设置名称
template_name = 'date.html' # 响应模板
model = PersonInfo # 设置模型
date_field = 'hireDate' # 设置要查询的字段
queryset = PersonInfo.objects.all() # 查询模型
year_format = '%Y' # 设置格式年
month_format = '%m' # 设置格式月
paginate_by = 50 # 分页功能为50条
date.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<ul>
{% for v in mylist %}
<li>{{ v.hireDate }}: {{ v.name }}</li>
{% endfor %}
</ul>
<p>
{% if previous_Month %}
Previous Month: {{ previous_month }}
{% endif %}
<br>
{% if next_month %}
Next Month:{{ next_month }}
{% endif %}
</p>
</body>
</html>
models.py
from django.db import models
class PersonInfo (models.Model):
id = models.AutoField(primary_key=True)
name = models.CharField(max_length=20)
age = models.IntegerField()
hireDate = models.DateField()
form.py
# 刘文豪
# 大帅哥
from django import forms
from .models import PersonInfo
class PersonInfoForm(forms.ModelForm):
class Meta:
model = PersonInfo
fields = '__all__'
运行图片
数据库
以周来
路由设置urls.py
path('<int:year>/<int:week>.html', views.date1.as_view(), name='date1')
视图views.py
class date1(WeekArchiveView):
allow_empty = True # 允许数据不存在显示页面
allow_future = True # 允许显示未来日期
context_object_name = 'mylist' # 设置名称
template_name = 'date1.html' # 响应模板
model = PersonInfo # 设置模型
date_field = 'hireDate' # 设置要查询的字段
queryset = PersonInfo.objects.all() # 查询模型
year_format = '%Y' # 设置格式年
week_format = '%W' # 设置格式周
paginate_by = 50 # 分页功能为50
最后就是date.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>{{ title }}</title>
</head>
<body>
<ul>
{% for v in mylist %}
<li>{{ v.hireDate }}: {{ v.name }}</li>
{% endfor %}
</ul>
<p>
{% if previous_week %}
Previous Week: {{ previous_week }}
{% endif %}
<br>
{% if next_week %}
Next Week:{{ next_week }}
{% endif %}
</p>
</body>
</html>
其他的都一样
运行图片