如何在不完整的 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 &rsaquo;</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 表单中获取员工用户的用户名

Django使用不完整的模型创建一个有效的ModelForm,以在表单验证后手动添加字段

如何在不使用自动模型表单的情况下从 Django 的文本框中获取数据?

django form 和modelform

如何在需要的基本 Django 用户模型中获取电子邮件字段?