我的html中有一个表单元素。
<form action="" method="GET">
<input type="text" name="start_date" placeholder="From" value="{{ request.GET.start_date }}">
<input type="text" name="end_date" placeholder="To" value="{{ request.GET.end_date }}">
</form>
我想访问我的一个view.py方法中的start_date
和end_date
,但我一直都是None。
到目前为止,我已经尝试过:
temp = request.GET.get('start_date', None)
temp = request.GET['start_date']
可能是什么问题?如何访问start_date
和end_date
?
编辑:我想用这种方法访问它:
def download_pdf(request):
response = HttpResponse(content_type='application/pdf')
response['Content-Disposition'] = 'attachment; filename=%s' % 'invoice.pdf'
books = books.objects.all()
date = request.GET.get('start_date', None)
books.filter(order__date = temp)
c = canvas.Canvas(response)
c.drawText(date)
c.showPage()
c.save()
return response
答案 0 :(得分:1)
提交该表单后,您可以获得end_date
和<form action="." method="GET">
<input type="text" name="start_date" placeholder="From" value="{{ request.GET.start_date }}">
<input type="text" name="end_date" placeholder="To" value="{{ request.GET.end_date }}">
<input type="submit" value="submit">
</form>
。与POST方法一样,GET表单也希望您从前端提交。
http://localhost:8000/?start_date=test_start_date&end_date=test_end_date
或者忘记表单方法只需在url中附加参数即可。像这样......
start_date = request.GET.get('start_date')
if start_date:
print(start_date)
编辑:
您必须在访问之前检查GET字典。因为start_date不会出现在每个GET请求中。一旦用户提交了GET请求,我们就可以访问GET参数....
# Create your views here.
def index(request):
start_date = request.GET.get('start_date')
if start_date:
print(start_date)
return render(request, 'base.html')
# base.html
<form action="." method="GET">
<input type="text" name="start_date" placeholder="From" value="testing">
<input type="text" name="end_date" placeholder="To" value="testing">
<input type="submit" value="submit">
</form>
编辑2:
import React from 'react';
import { Grid } from 'react-virtualized';
import { Scrollbars } from 'react-custom-scrollbars';
class ScrollableGrid extends React.Component {
handleScroll = ({ target }) => {
const { scrollTop, scrollLeft } = target;
this.Grid.handleScrollEvent({ scrollTop, scrollLeft });
};
Grid = null;
render() {
const { width, height } = this.props;
return (
<Scrollbars autoHide style={{ width, height }} onScroll={this.handleScroll}>
<Grid
{...this.props}
ref={instance => (this.Grid = instance)}
style={{
overflowX: false,
overflowY: false
}}
/>
</Scrollbars>
);
}
}
const list = [
['Brian Vaughn', 'Software Engineer', 'San Jose', 'CA', 95125],
['Brian Vaughn', 'Software Engineer', 'San Jose', 'CA', 95125],
['Brian Vaughn', 'Software Engineer', 'San Jose', 'CA', 95125],
['Brian Vaughn', 'Software Engineer', 'San Jose', 'CA', 95125],
['Brian Vaughn', 'Software Engineer', 'San Jose', 'CA', 95125],
['Brian Vaughn', 'Software Engineer', 'San Jose', 'CA', 95125],
['Brian Vaughn', 'Software Engineer', 'San Jose', 'CA', 95125],
['Brian Vaughn', 'Software Engineer', 'San Jose', 'CA', 95125],
['Brian Vaughn', 'Software Engineer', 'San Jose', 'CA', 95125],
['Brian Vaughn', 'Software Engineer', 'San Jose', 'CA', 95125],
['Brian Vaughn', 'Software Engineer', 'San Jose', 'CA', 95125],
['Brian Vaughn', 'Software Engineer', 'San Jose', 'CA', 95125],
['Brian Vaughn', 'Software Engineer', 'San Jose', 'CA', 95125],
['Brian Vaughn', 'Software Engineer', 'San Jose', 'CA', 95125],
['Brian Vaughn', 'Software Engineer', 'San Jose', 'CA', 95125],
['Brian Vaughn', 'Software Engineer', 'San Jose', 'CA', 95125],
['Brian Vaughn', 'Software Engineer', 'San Jose', 'CA', 95125],
['Brian Vaughn', 'Software Engineer', 'San Jose', 'CA', 95125]
];
ReactDOM.render(
<ScrollableGrid
cellRenderer={({ columnIndex, key, rowIndex, style }) => {
return (
<div key={key} style={style}>
{list[rowIndex][columnIndex]}
</div>
);
}}
columnCount={list[0].length}
columnWidth={100}
height={300}
rowCount={list.length}
rowHeight={30}
width={300}
/>,
document.getElementById('example')
);