Как мне «вернуть индекс (запрос)» при успешной отправке формы в Django 1.11 - PullRequest
0 голосов
/ 24 декабря 2018

Я пытаюсь использовать Toastr для передачи сообщений о состоянии после заполнения формы.Если форма верна, она возвращает вас в индекс с помощью «return index (request)». Я хочу передать контекст через это.

Я использую Python 3.6 и Django 1.11, используя Modelforms.Я попытался передать context = var_list, а также передать переменные индивидуально.

Строка 15-34 моих views.py

def add(request):
    form = CustomerForm()

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

        if form.is_valid():
            form.save(commit=True)
            notification_vars = {"toastr_title": "SUCCESS!", 
                                 "toastr_message": "The Customer has been added to the database", 
                                 "toastr_type": "success",}
            return index(request, context=notification_vars) // THIS IS WHAT I NEED TO WORK

    page_vars = { "page_title": "Add Customer", 
                  "page_icon": "fa-address-book",
                  "toastr_title": "", 
                  "toastr_message": "", 
                  "toastr_type": "",
                  "form": form}
return render(request, 'customers/add.html', context=page_vars)

Это код тостера в моем нижнем колонтитуле, и почемуЯ всегда должен передавать переменные как пустые, если я не хочу передать сообщение

{% if toastr_message %}
    <script>
        var title   = '{{ toastr_title }}',
            message = '{{ toastr_message }}',
            type    = '{{ toastr_type }}',
            options = {};

        toastr[type](message, title, options);
    </script>
{% endif %}

Что я хочу сделать, это при успешной отправке формы, он передает контекст обратно на индексную страницу и заполняет скриптнижний колонтитул, так что появляется сообщение об успешном завершении.

В настоящее время возвращается сообщение о том, что у меня есть непредвиденная переменная Context, или, если я передаю переменные напрямую, это говорит мне о синтаксической проблеме

1 Ответ

0 голосов
/ 24 декабря 2018

Я понял это.Мне нужно было убедиться, что мой индекс может принимать контекст, но также сделать так, чтобы, если контекст не был передан, он все еще работал.

def index(request,context={"toastr_title":"","toastr_message":"", "toastr_type":"" }):
    customer_list = Customers.objects.order_by('Name')
    page_vars = { "page_title": "Customers", 
                  "page_icon": "fa-address-book",
                  "toastr_title": context['toastr_title'], 
                  "toastr_message": context['toastr_message'], 
                  "toastr_type": context['toastr_type'],
                  "customer_records": customer_list}
    return render(request, 'customers/index.html', context=page_vars)
...