【问题标题】:Displaying 3 separate forms on the same page in django在 django 的同一页面上显示 3 个单独的表单
【发布时间】:2021-01-19 18:04:31
【问题描述】:

我正在开发一个单页网站,在同一页面上有 3 种不同的表单:

  • 旅游表格
  • 飞行形式
  • 书单

我使用模型表单创建了表单,但是如何显示表单以便我的网站知道我将数据提交到哪个表单?

【问题讨论】:

    标签: django forms django-models


    【解决方案1】:

    你需要在你的views.py中传递你的表单

    from your_app.forms import TourForm, FlightForm, BookForm
      
    def your_view_name(request):
        if request.method == 'POST':
            tour_form = TourForm(request.POST or None)
            flight_form = FlightForm(request.POST or None)
            book_form = BookForm(request.POST or None)
    
            # so you have 3 different forms
            if tour_form.is_valid():
                tour_form.save()
                return redirect('some_url')
            elif flight_form.is_valid():
                flight_form.save()
                return redirect('some_url')
            elif book_form.is_valid():
                book_form.is_save()
                return redirect('some_url')
            else:
                return redirect('some_url')
        else:
            tour_form = TourForm()
            flight_form = FlightForm()
            book_form = BookForm()
            context = {
            'tour_form': tour_form,
            'flight_form': flight_form,
            'book_form': book_form
            }
            return render(request, 'your_template_name.html', context)
    

    然后只需在您的模板中添加您的表单

    <form method='post'>
      {% csrf_token %}
       {{ tour_form }}
     <button class='btn btn-primary' type='submit'>submit</button>
    </form>
    
    <form method='post'>
      {% csrf_token %}
       {{ flight_form }}
     <button class='btn btn-primary' type='submit'>submit</button>
    </form>
    
    <form method='post'>
      {% csrf_token %}
       {{ book_form }}
     <button class='btn btn-primary' type='submit'>submit</button>
    </form>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-12-30
      • 1970-01-01
      • 2019-11-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多