【问题标题】:Display Table and Form in Django View在 Django 视图中显示表格和表单
【发布时间】:2019-05-09 22:26:48
【问题描述】:

我正在尝试在同一视图中返回表单和表格,以便它们出现在同一屏幕中。

我知道下面的代码不起作用,它是为了说明我想要做什么 - 我有我的 CreateManifestFormmanifests = Manifests.objects.all() 应该填充模板中存在的表格。问题是当我渲染它时 - 它显示了表单,并且只是空白表。我已经使用单独的视图填充了表格,因此我知道它已自行正确设置,但是如何同时渲染 {'form': form}context

Views.py:


def add_manifest(request):
    manifests = Manifests.objects.all()
    context = {
        'manifests' : manifests,
    }

    if request.method == "POST":
        form = CreateManifestForm(request.POST)


        if form.is_valid():
            form.save()
            return redirect('display_orders')

    else:
        form = CreateManifestForm()
        return render(request, 'add_manifest.html', {'form': form})
        return render(request, 'add_manifest.html', context)

【问题讨论】:

    标签: python django forms view


    【解决方案1】:

    您只需返回上下文中所需的所有内容。你有 2 个退货,所以第二个永远不会发生。

    你需要这样做;

    
    def add_manifest(request):
    
        if request.method == "POST":
            form = CreateManifestForm(request.POST)
    
            if form.is_valid():
                form.save()
                return redirect('display_orders')
    
        # Leave this down here so that you don't hit 
        # the database for manifests on a POST when 
        # the form is valid, because that returns above
        form = CreateManifestForm()
        manifests = Manifests.objects.all()
        context = {
            'form': form,
            'manifests': manifests,
        }
    
        return render(request, 'add_manifest.html', context)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-05-29
      • 2011-09-16
      • 1970-01-01
      • 2019-12-29
      • 2014-12-21
      相关资源
      最近更新 更多