【发布时间】:2019-03-18 22:44:14
【问题描述】:
我正在研究 Django 查询集。在我的 HTML 页面中,我可以通过手动输入日期从数据库中获取月份和年份的数据。相反,我需要日期选择器来选择两个日期之间的数据。例如,显示从 2018 年 9 月 24 日到 2018 年 9 月 28 日
的数据models.py
from django.db import models
class Track(models.Model):
EndDate = models.DateField(blank=True, null=True)
STATUS_CHOICES = [('Progress', 'Progress'),('Completed',
'Completed')]
filters.py
from django.contrib.auth.models import User
import django_filters
from .models import Track
class UserFilter(django_filters.FilterSet):
class Meta:
model = Track
fields = {
'EndDate': ['year','month', ],
}
views.py
from django.shortcuts import render
from django.http import HttpRequest, HttpResponse
from .filters import UserFilter
def search(request):
status_list = Track.objects.filter(Status__startswith='Completed')
status_filter = UserFilter(request.GET, queryset=status_list)
return render(request, 'hai/data.html', {'filter': status_filter})
HTML 页面
<div>
{% block content %}
<form method="get">
{{ filter.form.as_table }}
</select>
<button type="submit" class="btn btn-primary">
<span class="glyphicon glyphicon-search"></span> Search
</button>
</form>
<ul>
<table style="margin-top: 20px" class="table table-bordered" >
<span style="display:none"></span>
<thead>
<tr>
<th>EndDate</th>
</tr>
</thead>
<tbody>
{% for Track in filter.qs %}
<tr>
<td>{{ Track.EndDate }}</td>
</tr>
{% empty %}
<tr>
<td colspan="5">No data</td>
</tr>
{% endfor %}
</tbody>
</table>
{% endblock %}
【问题讨论】:
-
你到底想做什么?
标签: django django-views