Джанго «Пинакс» Магия ... необъяснимое поведение формы
Этот старый 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 ...
Ух-ха... Иногда, даже если вы создали сайт несколько лет назад, вы фактически непомните, что именно вы делали в то время. Как это было в данном случае.