Django - Bootstrap4 - DateRangePicker - django-bootstrap-datepicker-plus - PullRequest
0 голосов
/ 31 августа 2018

Во-первых, я не очень опытный специалист по объектам или структурам 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 %}

Заранее спасибо всем, кто может помочь мне добавить указатель диапазона дат, а также за любые советы или комментарии к моему коду.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...