Форма Django недействительна перед рендерингом с помощью контекстного процессора

У меня есть небольшая проблема с моей формой, использующей Django. На моем сайте на каждой странице есть поле 'settings' (отображаемое с помощью 'include') в base.html - каждое поле настроек имеет форму, которую я отображаю с помощью 'context processor', однако при отображении формы в шаблоне ничего не отображается. При рендеринге с помощью {{global_rebase_form.get_context}} я получаю следующее сообщение:

{'form': <global_rebase_form bound=False, valid=False, fields=()>, 'fields': [], 'hidden_fields': [], 'errors': []}

Предполагаете, что он недействителен? Мой код выглядит следующим образом

Settings.py

'OPTIONS': {
            'context_processors': [
                'apps.home.views.global_rebase_context',
                 ...
            ],

контекстный процессор:

def global_rebase_context(request):
    form = global_rebase_form()
    return {
        'global_rebase_form': form
    }

шаблон

<form method="POST" name="time" id="rebase-form">
{% csrf_token %}
{{global_rebase_form.as_p}}
</form>

form.py

class global_rebase_form(forms.Form):
class Meta:
    model = profile
    fields = ['location_rebase', 'time_rebase']

Любая помощь будет очень признательна!

Это означает, что если вы используете form.is_valid(), он вернет False, это потому, что форма не bounded. Bounded означает, что вы передали ей данные. Поэтому форма:

global_rebase_form(request.POST, request.FILES)  # bounded

является ограниченным, в то время как форма без данных:

global_rebase_form()  # not bounded and thus not valid

не ограничена и поэтому недопустима. Но здесь вы каждый раз создаете пустую форму. И только если пользователь отправит данные, вы построите новый объект формы с данными, а затем проведете его валидацию.

Следовательно, это не проблема.

Вернуться на верх