Символ "@" в имени переменной в шаблоне django

У меня есть словарь в моем файле views.py

mydata = {'@model': 'wolfen', '@genre': 'fantastic', 'price: '350'}

который я передаю в представление django в таком контексте

context['mydata'] = mydata

и в моем представлении я отображаю так

{{mydata.@model}}

проблема в том, что шаблон django использует символ "@" для других тегов. Как заменить символ "@", чтобы не отображалась следующая ошибка

Could not parse the remainder: '@model' from 'mydata.@model'

спасибо

решение Willem работает отлично.

У меня есть еще один вложенный словарь, который выглядит иначе

mydata_2 ={'1' {'@model': 'wolfen', '@genre': 'fantastic', 'price': '300'} , {'3' {'@model': 'phase4', '@genre': 'fantastic', 'price': '450'} }

ключи основных словарей ("1" , "3") могут динамически изменяться.

иначе большое спасибо Виллему

Переименуйте данные, например, так:

mydata = {'@model': 'wolfen', '@genre': 'fantastic', 'price': '350'}
mydata = {k[1:] if k.startswith('@') else k: v for k, v in mydata.items()}
context['mydata'] = mydata

Тогда вы можете использовать {{ mydata.model }} в шаблоне.

Или для подсловарей:

mydata_2 = {
    '1': {'@model': 'wolfen', '@genre': 'fantastic', 'price': '300'},
    '3': {'@model': 'phase4', '@genre': 'fantastic', 'price': '450'},
}
mydata_2 = {
    k: {ki[1:] if ki.startswith('@') else ki: v for ki, v in subdict.items()}
    for k, subdict in mydata_2.items()
}
Вернуться на верх