Джанго «Пинакс» Магия ... необъяснимое поведение формы

Этот старый Django-сайт использует «Pinax» для уведомлений. Я точно знаю, что используется следующий шаблон «Signup»:

            {{ form.captcha.label }}
            {{ form.captcha }} {{ form.captcha.errors }}
            <br/>
            {{ form.email.label }}
            {{ form.email }} {{ form.email.errors }}
            <br/>
            {{ form.email2.label }}
            {{ form.email2 }} {{ form.email2.errors }}

Но вот мои две проблемы. Во-первых, мое поле «captcha» не отображается в выводе. Во-вторых, я не нахожу оправдания существованию «email2!»

Определение «формы» состоит, в соответствующей части:

    email = forms.EmailField(widget=forms.TextInput())
    confirmation_key = forms.CharField(
        max_length = 40,
        required = False,
        widget = forms.HiddenInput()
    )
    
    # "Solve a math problem" challenge
    captcha = CaptchaField(
        label = "Solve A Simple Math Problem",
        widget = forms.TextInput()
    )

Обратите внимание, что здесь нет «письма-два». Тем не менее, он появляется с надписью «Email (снова)». И мое поле «captcha» вообще не появляется в шаблоне.

Я не понимаю этой «магии Джанго». Я усердно искал в исходном коде фразу «(снова)». И не нашел ни одного упоминания о ней в связи с «электронной почтой».

(Я уже, по другим причинам, перенес «пинакс» непосредственно в свой проект, потому что он, похоже, был заброшен.)

Я собираюсь закрыть этот вопрос, «не получив полного ответа». Теперь я вижу в исходном коде ссылки на устаревшие конструкции Django, такие как render_to_response(). Потребуется некоторое время, чтобы понять, что именно этот код делает на самом деле. Очевидно, что в свое время этот пакет обладал немалым количеством «волшебства». (Но, насколько я могу судить, он был заброшен.)

Полное закрытие: Теперь я определил (вспомнил...), что этот сайт использовал Pinax только для своей [email...] системы «уведомлений». (Которую я теперь заменил как совершенно ненужную, вместе с самим Pinax.) Фактическая система аутентификации использовала «Allauth», используя настроенный шаблон. На самом деле ни одна из «предоставленных Pinax» систем аутентификации не использовалась, но я ошибочно поместил туда свои модификации.

Мой первоначальный пост, таким образом, был: «совершенно ошибочным». Mea culpa ...

Ух-ха... Иногда, даже если вы создали сайт несколько лет назад, вы фактически непомните, что именно вы делали в то время. Как это было в данном случае.

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