- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
使用django_filter和 datetimeinput作为日期选择器,我尝试添加日期和时间输入、FROM 和 TO 字段。
我只能使用来自 django 表单或 django 过滤器 DateTimeFromToRangeFilter 的一个字段的日期输入不显示日期选择器(仅手动文本输入)。
这是我的filter_model.py,用于带有日期选择器的一个字段。
from app.models.api_status import ApiStatus
import django_filters
from django import forms
class DateTimeInput(forms.DateTimeInput):
input_type = 'date'
# working solution for just 1 date field
class ApiStatusFilter(django_filters.FilterSet):
date_time = django_filters.DateFilter(
label=('With start date'),
lookup_expr=('icontains'), # use contains,
widget=DateTimeInput()
)
class Meta:
model = ApiStatus
fields = ['id', 'date_time']
图片显示了一个可点击的日期选择器弹出窗口。
这是我的 filter_model.py 两个字段,FROM 和 TO,没有日期选择器。
from app.models.api_status import ApiStatus
import django_filters
from django import forms
class DateTimeInput(forms.DateTimeInput):
input_type = 'date'
class ApiStatusFilter(django_filters.FilterSet):
date_time =django_filters.DateTimeFromToRangeFilter()
class Meta:
model = ApiStatus
fields = ['id', 'date_time']
widgets = {
'date_time': forms.DateTimeInput(attrs={'placeholder':'Select a date'})
}
这是我的模板文件,尽管在尝试上述两种方法时我没有对其进行太多更改。status_template.html
{% load static %}
<!DOCTYPE html>
<html lang="en">
<head>
<link rel="stylesheet" type="text/css" href="{% static 'css/table_styling.css' %}">
<meta charset="UTF-8">
<title>Test Site</title>
{% comment %}
<link rel="stylesheet" href="//code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css">
<link rel="stylesheet" href="/resources/demos/style.css">
<script src="https://code.jquery.com/jquery-1.12.4.js"></script>
<script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js"></script>
{% endcomment %}
</head>
<body>
<table>
<thead>
<tr>
{% for keys in dictionarys.keys %}
<th>{{ keys }}</th>
{% endfor %}
</tr>
</thead>
<tbody>
<form method="get">
{{ apistatus_filter.form.as_p }}
<button type="submit">Search</button>
{% for user in dataqs.object_list %}
<tr>
<td>{{ user.id }}</td>
<td>{{ user.date_time }}</td>
{% endfor %}
</form>
</tbody>
</table>
{% comment %} <script>
$( function() {
$("#datepicker").datepicker();
} );
</script> {% endcomment %}
</body>
</html>
我确实在这里和其他地方研究了各种来源。我尝试使用 MultiWidget 和 jQuery,但还没有成功。想法?提前致谢。
最佳答案
可以使用 JavaScript 使范围字段具有 datepicker
类。
我正在努力让 jQuery 日期选择器与 Django Filters 中的 DateTimeFromToRangeFilter
结合使用 RangeWidget
。由于某种原因,RangeWidget
似乎不接受class: datepicker
。
过滤器.py:
dtoriginal = django_filters.DateTimeFromToRangeFilter(lookup_expr='icontains',
widget=django_filters.widgets.RangeWidget(
attrs={
'placeholder': 'yyyy-mm-dd',
},
),
label = 'Date Original'
)
我更改了搜索模板 html 以包含以下脚本:
<form method="get">
{{ filter.form.as_p }}
<script>
$(function () {
$("id_dtoriginal_0").datepicker();
$("id_dtoriginal_1").datepicker();
});
</script>
{% if filter.is_bound %}
<button onclick=...></button
{% endif %}
</form>
其中dtoriginal
是模型中字段的名称。 _0
和 _1
是 RangeWidget
创建的“from”和“to”字段。
希望这有帮助,我花了几个小时试图弄清楚如何通过 django-filters 来做到这一点,但没有运气。
关于python - 结合 django-filter DateTimeFromToRangeFilter 和 DateTimeInput(datepicker),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54825483/
使用django_filter和 datetimeinput作为日期选择器,我尝试添加日期和时间输入、FROM 和 TO 字段。 我只能使用来自 django 表单或 django 过滤器 DateT
我是一名优秀的程序员,十分优秀!