django - 将数据从 datepicker 表单传递到 APIView
问题描述
我目前正在尝试使用 graphjs 在我的网站上动态加载图表。我想要做的是通过选择时间范围或特定数据类型来更新数据。我希望它更灵活,只有两个视图;一个用于渲染图形,另一个用于返回相关数据。我认为我的日期小部件将使用 post 方法通过 HomeView 传递数据。如何将日期信息传递给 GenericDataView ?或者也许还有其他方法可以做这种事情。
编辑:
class HomeView(View):
def get(self,request,*args,**kwargs):
return render(request,'charts/charts.html')
class GenericDataView(APIView):
def get(self,request,*args,**kwargs):
selected_data = getDataFromTimeRange()
if selected_data is not None:
return Response(selected_data)
if request.method == 'POST':
form = DatePickerCustom(request.POST)
if form.is_valid():
mydate = form.cleaned_data('production_day')
print("DATE: ", mydate)
else:
form = DatePickerCustom()
def getDataFromTimeRange():
// do things
return data;
在 forms.py 中:
dateCustomInput = DateInput(attrs={'class':'datepicker'})
class DatePickerCustom(Form):
production_day = DateField(label='Production day',widget=dateCustomInput)
在 chart.hmtl 中:
function csrfSafeMethod(method) {
// these HTTP methods do not require CSRF protection
return (/^(GET|HEAD|OPTIONS|TRACE)$/.test(method));
}
$.ajaxSetup({
beforeSend: function(xhr, settings) {
if (!csrfSafeMethod(settings.type) && !this.crossDomain) {
console.log(xhr)
console.log(csrftoken)
xhr.setRequestHeader("X-CSRFToken", csrftoken);
console.log(X-CSRFToken)
}
}
});
<div class="chart-container" url-endpoint='{% url "api-data" %}' style="position: relative">
<canvas id="myChart"></canvas>
</div>
<form action="chart" method="post" enctype='multipart/form-data'>
<!-- {{ csrf_input }}-->
{% csrf_token %}
<label for="date">Choose a date: </label>
<input id="datepicker" type="text" name="selectedDate" value="{{ form }}">
<input type="submit" value="OK">
</form>
解决方案
推荐阅读
- http - 我可以/应该将 application/x-ndjson 与 application/hal+json 混合吗?
- java - 无法使用 Socket HTTP-proxy 连接到 HTTPS 站点
- php - 使用 TCPDF 生成 PDF
- micronaut - Micronaut AWS lambda 应用程序“找不到类:io.micronaut.function.aws.proxy.MicronautLambdaHandler”
- python - 调用基本配置后的 Python 日志记录更改日志格式
- sqlite - 从另一个表的特定列中的多个值中检索一个表的 SQLite 数据
- c++ - 如何使用二进制文件将矩阵导入犰狳?
- next.js - NextJS 加载视频和图片
- split - 我有一个字符串。我想用“/”分隔。并且只打印 react js 中的“item_images”部分。请帮帮我我该怎么做
- google-cloud-platform - 等待创建 DomainMapping 时出错:资源处于失败状态“Ready:False”,消息:Route XXX 不存在