Во-первых, я не очень опытный специалист по объектам или структурам Django, я учусь многочисленным и разнообразным ругательствам и стараюсь во время разработки моего сайта достичь необходимого четкого и эффективного кода в моем проекте Django.
Теперь я пытаюсь сделать выбор диапазона дат в bootstrap 4
(4.1.3)
Я получу тот же результат, что и этот инструмент django-bootstrap-datepicker-plus , я пытаюсь следовать примеру кода, но я не знаю, как добавить этот инструмент в мой проект django.
На данный момент я не могу успешно отрисовать daterangepicker
в шаблоне.
Я делюсь файлами, относящимися к этому инструменту.
models.py
class Event(models.Model):
name = models.CharField(max_length=200)
start_date = models.DateField()
end_date = models.DateField()
start_time = models.TimeField()
end_time = models.TimeField()
start_datetime = models.DateTimeField()
end_datetime = models.DateTimeField()
start_month = models.DateField()
end_month = models.DateField()
start_year = models.DateField()
end_year = models.DateField()
def __str__(self):
return self.name
forms.py
from bootstrap_datepicker_plus import DatePickerInput
from bootstrap_datepicker_plus import TimePickerInput
from bootstrap_datepicker_plus import DateTimePickerInput
from bootstrap_datepicker_plus import MonthPickerInput
from bootstrap_datepicker_plus import YearPickerInput
class EventForm(forms.ModelForm):
class Meta:
model = Event
fields = [
'start_date', 'end_date',
'start_time', 'end_time',
'start_datetime', 'end_datetime',
'start_month', 'end_month',
'start_year', 'end_year',
]
widgets = {
'start_date': DatePickerInput(options={'format': 'YYYY-MM-DD', 'debug': True}).start_of('event active days'),
'end_date': DatePickerInput(options={'format': 'MM/DD/YYYY'}).end_of('event active days'),
'start_datetime': DateTimePickerInput(options={'debug': True}).start_of('event active dtime'),
'end_datetime': DateTimePickerInput().end_of('event active dtime'),
'start_time': TimePickerInput(options={'debug': True}).start_of('event active time'),
'end_time': TimePickerInput().end_of('event active time'),
'start_month': MonthPickerInput().start_of('active month'),
'end_month': MonthPickerInput().end_of('active month'),
'start_year': YearPickerInput().start_of('active year'),
'end_year': YearPickerInput().end_of('active year'),
}
views.py
@login_required
def visual_general(request):
....
# get data for the table of django-tables2 and other stuff
....
# Get data
data = create_data_table_general(samples, references, strains, analyzepipelines, sts, id_access_list)
# Add data to the table
table = GeneralTable(data)
form_date_range = EventForm()
return render(request, 'visual/visual_general.html', {'table': table, 'form_date_range': form_date_range})
urls.py
# -*- coding: utf-8 -*-
# Library Django
from django.conf.urls import url
# Inner functions
from . import views
urlpatterns = [
url(r'^visual/General', views.visual_general, name="visual_general"),
]
base.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>{% block title %}MySite{% endblock %}</title>
{% load static %}
{% block head %}
<link rel="stylesheet" type="text/css" href="{% static 'css/menu.css' %}" />
<link rel="stylesheet" type="text/css" href="{% static 'css/base.css' %}" />
{% endblock %}
{% block css %}
<!-- blueimp Gallery styles -->
<link rel="stylesheet" href="/static/css/blueimp-gallery.min.css">
<!-- CSS to style the file input field as button and adjust the Bootstrap progress bars -->
<link rel="stylesheet" href="/static/css/jquery.fileupload-ui.css">
<!-- CSS adjustments for browsers with JavaScript disabled -->
<noscript><link rel="stylesheet" href="/static/css/jquery.fileupload-ui-noscript.css"></noscript>
{% endblock %}
{% block bootstrap_css %}
<link rel="stylesheet" href="{% static 'bootstrap-4.1.3/css/bootstrap.min.css' %}"/>
{% endblock %}
{% block bootstrap_js %}
<script src="{% static 'jquery/jquery3.min.js' %}"></script>
<script src="{% static 'js/popper.min.js' %}"></script>
<script src="{% static 'bootstrap-4.1.3/js/bootstrap.min.js' %}"></script>
{% endblock %}
</head>
<body>
<br />
<section id="content">
{% block content %}
<h1>No content set</h1>
{% endblock %}
</section>
</body>
</html>
visual_general.html
{% extends "base.html" %}
{% load django_tables2 %}
{% load static %}
{% block title %} Visual of data {% endblock%}
{% block content %}
<div id="form">
<form
id="test"
action="{% url 'visual_general' %}"
method="get">
{% csrf_token %}
<div
class="well"
style="margin: 2px; padding: 1px 20px 0 40px; position: relative; top: 0; background: #B8C1C8;">
<div class="row">
{{form_date_range.media}}
<div class="row">
<div class="form-group col-sm-8 col-md-6">
<center>
<input
class="button"
type="submit"
value="Filter" />
</center>
</div>
</div>
</div>
</div>
</form>
</div>
{% endblock %}
Заранее спасибо всем, кто может помочь мне добавить указатель диапазона дат, а также за любые советы или комментарии к моему коду.