django - 在 Django 中使用日历搜索和显示结果
问题描述
我想使用日历执行搜索操作。我将选择两个日期,即 max_date 不能超过当前日期但可以小于和 min_date,这两个应为天数范围。结果字段为:in_count、out_count 和dwell_time。输出应总结 max_date 和 min_date 之间所有日期的所有结果。我怎样才能做到这一点?请帮忙。是否需要为此定义模型?我完全一无所知。
目前我正在使用搜索栏执行搜索操作。
我的模型:
class Result(models.Model):
in_count = models.PositiveIntegerField()
out_count = models.PositiveIntegerField()
date_time = models.DateTimeField()
time = models.TimeField()
def __str__(self):
return "{},{},{},{}".format(self.in_count, self.out_count, self.date_time, self.time)
我的观点.py
class ResultListView(ListView):
def get_queryset(self, *args, **kwargs):
qs = Result.objects.all()
print(self.request.GET)
query = self.request.GET.get("q", None)
if query is not None:
qs = qs.filter(
Q(in_count__icontains=query) | Q(out_count__icontains=query) | Q(date_time__icontains=query) | Q(time__icontains=query))
return qs
def get_context_data(self, *args, **kwargs):
context = super(ResultListView, self).get_context_data(*args, **kwargs)
return context
class ResultDetailView(DetailView):
queryset = Result.objects.all()
我的 result_list.html
<div class="card-header">Result on {{ object.date_time}}</div>
<div class="card-body">
<h3 class="card-title"><a href="{% url 'result:result' %}"style="color: white; ">Result of Model</a></h3>
<p class="card-text"> In Count {{ object.in_count }}</p>
<p class="card-text">Out Count {{ object.out_count}}</p>
预期结果是以与 result_list.html 中相同的形式获得输出,显示从 min_date 到 max_date 的所有日期字段的结果,并且 min_date 和 max_date 也应显示在模板中。请帮忙。
解决方案
您首先需要过滤您的Result
对象以仅包含相关条目,然后聚合过滤后的条目。这一切都在 django 文档中进行了解释,我建议您阅读一次。https://docs.djangoproject.com/en/2.2/ref/models/querysets/#range
https://docs.djangoproject.com/en/2.2/topics/db/aggregation/
在您的特定情况下,它将如下所示:
Result.objects.filter(
date_time__range=[start_date, end_date]
).aggregate(Sum('in_count'), Sum('out_count'))
推荐阅读
- angular - 如果发生错误,如何更改图像的来源?
- python - 化学表示 - SNL 到 SMILES
- javascript - Javascript。二十一点,命中功能
- python-3.x - PyAutoGui.pixelMatchesColor() 返回不可能的值,使用限制为 10,000?
- php - Codeigniter 错误消息:您必须启用 php_gmp 才能使用 Bitauth
- java - 使用 Retrofit 解析时,ArrayList 填充不正确
- javascript - jQuery 选项卡不适用于 Android 移动设备。
- java - 如何将参数传递给使用 Gradle 运行测试的 JVM
- android - 在 Flutter 中,如何使用 CachedNetworkImage 显示来自 Firebase 的离线图像?
- json - 如何在fluentd中跟踪多个文件