Отображение таблицы и формы в представлении Django - PullRequest
0 голосов
/ 10 мая 2019

Я пытаюсь вернуть форму и таблицу в одном представлении, чтобы они отображались на одном экране.

Я знаю, что приведенный ниже код не работает, это для иллюстрации того, что я хочу сделать - у меня есть CreateManifestForm и manifests = 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)

1 Ответ

0 голосов
/ 10 мая 2019

Вам нужно просто вернуть все, что вам нужно, в контексте. У вас там 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)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...