Django 日期视图筛选

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>

其他的都一样
运行图片
在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值