У меня есть dict
форм, что мой шаблон получает:В шаблоне Django, как мне получить доступ к атрибутам элемента dict, чей ключ имеет пробел?
forms = {'Cholera': CholeraForm(), 'Foot And Mouth Disease': FootMouthDiseaseForm()}
Плана для отображения каждого ключа в select
элементе формы, и в зависимости от выбранного значения, я покажу правильную форму. Доступ к dict
элементам, которые имеют пробелы в ключе является достаточно простая задача, решается с помощью тэга:
@register.filter
def get(value, arg):
"""
Template tag used for getting the value out of a dict when the key has whitespace.
"""
return value[arg]
Это позволяет мне получить форму, как это:
{{ forms|get:'Foot And Mouth Disease' }}
Однако, проблема, которую я «Я переживаю, что я не могу получить доступ к определенным элементам формы. Я хотел бы надеяться, чтобы быть в состоянии сделать это:
{{ forms|get:'Foot And Mouth Disease'.element }}
или это:
{{ (forms|get:'Foot And Mouth Disease').element }}
Но ни работы. Я получаю TemplateSyntaxErrors для каждого. Как я могу получить доступ к определенному элементу формы формы, доступной таким образом?
Я думаю, что шаблон отобразит форму в html. Лучше всего назначить каждую форму другой переменной или выполнить любую логику в view.py, если вы планируете отображать только одну конкретную форму для этой страницы. –
Я определенно открыт для этого, но я не совсем уверен, как это сделать. Вид не знает, какую форму он будет отображать. Основная идея заключается в том, что пользователь этого приложения может выбрать болезнь, и в зависимости от выбранной ими болезни необходимо задать другой набор вопросов. – Geoff
Это можно сделать обычным html-страничным способом, где выбор конкретной болезни будет перенаправлен на другую страницу с этой конкретной формой. Кроме того, вы можете использовать некоторые ajax для динамического изменения формы на одной странице. Какое бы ни было ваше требование или вам более комфортно. –