【问题标题】:How to get the user input in an incomplete Django form field?如何在不完整的 Django 表单字段中获取用户输入?
【发布时间】: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>

【问题讨论】:

    标签: javascript jquery django forms


    【解决方案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
    

    【讨论】:

      猜你喜欢
      • 2018-10-27
      • 2018-04-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-04-15
      • 1970-01-01
      • 2011-12-02
      相关资源
      最近更新 更多