如何在不完整的 Django 表单字段中获取用户输入?
Posted
技术标签:
【中文标题】如何在不完整的 Django 表单字段中获取用户输入?【英文标题】:How to get the user input in an incomplete Django form field? 【发布时间】:2017-07-27 22:50:50 【问题描述】:我有一个“调查”表格,其中包含姓名、身份证和年龄。我想在用户提交表单以扫描我的数据库表中输入的“id”之前捕获“id”字段中的用户条目。如何捕获这些输入的数据并在我的视图函数中使用它来扫描数据库?我可以使用 javascript 将用户输入传递给我的视图函数吗?那会是什么样子?我是 Django 开发的新手,所以任何建议都会对我有很大帮助!
这是我正在尝试设计的视图函数,它从我的调查表中扫描“id”,如果在过去 30 天内有匹配项,那么它会向用户返回一个弹出警报以进行调查或不是。
def search(request):
if request.method == 'POST': # If the form has been submitted...
form = TopicForm(request.GET) # A form bound to the POST data
if form.is_valid():
x = form.cleaned_data['id']
else:
x = form.cleaned_data['id']
x = request.POST.get('url')
posts = survey.objects.filter('id'=x)
posts1 = survey.objects.filter(date=posts)
delta= date.today - posts1
if delta.days <=30:
return HttpResponse('Survey NOT required')
else:
return HttpResponse('Survey required')
调查模板表格.HTML
<form action="% url 'FCR1' %" method='post' id="form" class="table">
% csrf_token %
% crispy form %
<br />
<center> <button> SAVE RECORD ›</button></center>
</form>
【问题讨论】:
【参考方案1】:from datetime import date, timedelta
def search(request):
if request.method == 'POST':
form = TopicForm(request.POST)
if form.is_valid():
# Get user id from form data (maybe this is named 'user_id'?)
id = form.cleaned_data['id']
# Get the past 30 from today
past_30_days = date.today() - timedelta(days=30)
# Create the query, but not evaluate yet
posts = Survey.objects.filter(id=id, date__gte=past_30_days)
# Proper way to check if something exists or not
if post.exists():
return HttpResponse('Survey NOT required')
return HttpResponse('Survey required')
else:
# form is not valid. Handle this approprietly.
pass
【讨论】:
以上是关于如何在不完整的 Django 表单字段中获取用户输入?的主要内容,如果未能解决你的问题,请参考以下文章
Django使用不完整的模型创建一个有效的ModelForm,以在表单验证后手动添加字段