Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery 我无法将daterangepicker用于筛选日期范围的模板_Jquery_Django_Python 3.x_Daterangepicker - Fatal编程技术网

Jquery 我无法将daterangepicker用于筛选日期范围的模板

Jquery 我无法将daterangepicker用于筛选日期范围的模板,jquery,django,python-3.x,daterangepicker,Jquery,Django,Python 3.x,Daterangepicker,Models.py class Expenses(models.Model): reg_date = models.DateField(auto_now_add=True) exp_id = models.AutoField(primary_key=True) # F description = models.CharField(max_length=200) expenses_value = models.IntegerField() def __

Models.py

class Expenses(models.Model):
    reg_date = models.DateField(auto_now_add=True)
    exp_id = models.AutoField(primary_key=True)  # F
    description = models.CharField(max_length=200)
    expenses_value = models.IntegerField()


    def __str__(self):
        return str(self.exp_id)
forms.py

class Expensesform(forms.ModelForm):
    description = forms.CharField(widget=forms.Textarea(attrs={"rows":3, "cols":40,'class':'form-control','placeholder':'Enter Detail here...'}),required=True)
    expenses_value = forms.CharField(widget=forms.TextInput(attrs={'class':'form-control','placeholder':'Enter Amount here...'}),required=True)

    class Meta:
        model  = Expenses
        fields = ("description", "expenses_value")
我使用了代码基日期,它工作得很好。但我无法使用日期范围选择器输入服装日期范围结果。平均用户可以使用日期范围选择器计算该日期范围的费用

views.py

def DailyExpReport(request):
    tday = datetime.date.today()
    datepicker1 = datetime.datetime.strptime('01072019', "%m%d%Y").date()

    total = 0
    myexpenses = Expenses.objects.filter(reg_date__gte = start_Date, reg_date__lte=tday)

    today_entry = Expenses.objects.filter(reg_date__gte = start_Date, reg_date__lte=tday).aggregate( Sum('expenses_value'))
    return render (request, "blog/expenses_report.html",{'Expenses':myexpenses, 'total': today_entry})
这是我的模板,它可以很好地用于每日报告或特定的编码日期

<!DOCTYPE html>
{% extends "blog/base.html"%}
{% block body_block %}
<h1>Expenses Detail:</h1>
<br>
<div class="container">
  <table class = "table"table table-striped table-bordered table-sm>
    <thead calss= "thead-dark">
      <tr>
        <th>Date</th>
        <th>ID</th>
        <th>Description</th>
        <th>Expences Value</th>
        </tr>
    </thead>
    <tbody>
      {% for object in Expenses %}
      <tr>
      <td>{{object.reg_date }}</td>
      <td>{{object.exp_id }}</td>
      <td>{{object.description}}</td>
      <td>{{object.expenses_value}}</td>
      <td>
      <a href="/editexpenses/{{object.exp_id}}"><span calss = "glyphicon glyphicon-pencil">Edit</span> </a>
      <a href="/deleteexpenses/{{object.exp_id}}" onclick="return confirm('Are you sure you want to delete this item?');">Delete</a>
      </td>
      </tr>
      {% endfor%}
    </tbody>
</table>
<br>
<br>
<a href="/dailyexpensesreport" class="btn btn-dark">Daily Report</a>
<a href="/monthlyexpensesreport" class="btn btn-dark">Monthly Report</a>
</div>
<br>
<br>
 <h3> Total Expenses are:  {{total.expenses_value__sum}}</h3>
{% endblock %}

{%extends“blog/base.html”%}
{%block body_block%}
费用明细:

日期 身份证件 描述 费用价值 {费用%%中的对象为%} {{object.reg_date} {{object.exp_id} {{object.description} {{object.expenses\u value} {%endfor%}



总费用为:{Total.Expenses\u value\u sum} {%endblock%}
您需要这两个库

https://momentjs.com/
http://www.daterangepicker.com/ 
您可以在template.html中添加以下内容

<button type="button" class="btn daterange" data-toggle="tooltip" 

title="Choose a date range"><i class="fa fa-calendar"></i>
</button>

在your views.py中,为了处理请求,我使用了以下方法:

@csrf_exempt
def DepartChart(request):
    if request.method == 'POST':
        params = json.loads(request.body)
        report_array = params['rangedate']
        for i in report_array:
            startdate   = i['startday']['startDate']
            EndDate     = i['endday']['endday']
            department_count =  Login_chart.objects.filter(date__gte=startdate, date__lte=EndDate).values('department').annotate(total_login=Sum('login_count')).order_by('department')
            context = {
            'department_count' : department_count
            }
            return render(request, 'troubleshootingapplication/admin_dash/departement_chart.html', context)
    else:
        return HttpResponse('')

希望这将有助于

您需要这两个库

https://momentjs.com/
http://www.daterangepicker.com/ 
您可以在template.html中添加以下内容

<button type="button" class="btn daterange" data-toggle="tooltip" 

title="Choose a date range"><i class="fa fa-calendar"></i>
</button>

在your views.py中,为了处理请求,我使用了以下方法:

@csrf_exempt
def DepartChart(request):
    if request.method == 'POST':
        params = json.loads(request.body)
        report_array = params['rangedate']
        for i in report_array:
            startdate   = i['startday']['startDate']
            EndDate     = i['endday']['endday']
            department_count =  Login_chart.objects.filter(date__gte=startdate, date__lte=EndDate).values('department').annotate(total_login=Sum('login_count')).order_by('department')
            context = {
            'department_count' : department_count
            }
            return render(request, 'troubleshootingapplication/admin_dash/departement_chart.html', context)
    else:
        return HttpResponse('')

希望这会有所帮助

我尝试过ajax或js方法,但失败了。我只是在html中使用两次简单的输入类型日期字段(开始日期和结束日期),并使用视图中的输入功能进行过滤

我的观点.py

def日期选择器(请求):
如果request.method==“GET”:
返回呈现(请求'blog/datepicker.html')
elif request.method==“POST”:
start\u date=request.POST.get(“startdate”,“”)
end_date=request.POST.get(“enddate”,“enddate”)
总数=0
myexpenses=Expenses.objects.filter(注册日期=开始日期,注册日期=结束日期)
today_entry=Expenses.objects.filter(注册日期=开始日期,注册日期=结束日期)。聚合(总和(“费用值”)
返回呈现(请求'blog/datepicker.html',{'Expenses':myexpenses,'total':today_entry})
其他:

返回render(请求'blog/dailyexpensesreport')
我尝试过ajax或js方法,但失败了。我只是在html中使用两次简单的输入类型日期字段(开始日期和结束日期),并使用视图中的输入功能进行过滤

我的观点.py

def日期选择器(请求):
如果request.method==“GET”:
返回呈现(请求'blog/datepicker.html')
elif request.method==“POST”:
start\u date=request.POST.get(“startdate”,“”)
end_date=request.POST.get(“enddate”,“enddate”)
总数=0
myexpenses=Expenses.objects.filter(注册日期=开始日期,注册日期=结束日期)
today_entry=Expenses.objects.filter(注册日期=开始日期,注册日期=结束日期)。聚合(总和(“费用值”)
返回呈现(请求'blog/datepicker.html',{'Expenses':myexpenses,'total':today_entry})
其他:

return render(request,'blog/dailyexpensesreport')
是否有任何要共享的错误?您的“注册日期”字段具有
auto\u now\u add=True
,这意味着该字段不可编辑。Django将始终将此字段设置为对象创建的日期created@IainShelvington“我不想编辑日期字段我只想筛选特定日期范围的数据,用户可以通过日期范围选择器选择的日期以及这些日期的总费用”@FarhaniWalid我已经厌倦了这些方法来添加日期选择器“stackoverflow.com/questions/49054846/…”但这些都不适用于我。您的日期范围输入在哪里?您是否收到任何要共享的错误?您的“注册日期”字段具有
auto\u now\u add=True
,这意味着该字段不可编辑。Django将始终将该字段设置为对象的创建日期created@IainShelvington "我不想编辑日期字段我只想过滤特定日期范围的数据,用户可以通过日期范围选择器选择的日期以及这些日期的费用总和“@FarhaniWalid我已经厌倦了这些方法来添加日期选择器”stackoverflow.com/questions/49054846/…“但是这些都不适用于我。您的daterange输入在哪里?感谢您的共享,但我尝试了您的方法,但失败了,获取“view blog.views.DateinputForm没有返回HttpResponse对象。它反而没有返回任何对象。”错误。我在视图末尾添加了其他:语句,试试看。谢谢分享,但我尝试了你的方法,但失败了,获取“视图blog.views.DateinputForm没有返回HttpResponse对象。它没有返回任何对象。”错误。我在视图末尾添加了else:语句,请尝试。