4
Variables and attributes may not begin with underscores: 'value._id'
Как ссылается _id
товара, полученного от MongoDB в шаблонах Django?Django Templates and MongoDB _id
Variables and attributes may not begin with underscores: 'value._id'
Как ссылается _id
товара, полученного от MongoDB в шаблонах Django?Django Templates and MongoDB _id
Custom template filter поможет:
from django import template
register = template.Library()
@register.filter(name='private')
def private(obj, attribute):
return getattr(obj, attribute)
Вы можете использовать его таким образом:
{{ value|private:'_id' }}
Насколько медленнее является фильтром, чем прямая ссылка? Должен ли я оценивать это первым или использовать '$ project' в MongoDB при получении набора вместо того, чтобы грубо вставить его в 'id'? (списки могут составлять несколько сотен элементов) – user3467349
@ user3467349 Если производительность действительно имеет значение здесь, я бы использовал '$ project', чтобы иметь« неединственное »имя атрибута, так как при использовании фильтра шаблона это был бы дополнительный вызов функции для каждый объект. Но, не оптимизируйте преждевременно, измерьте. Благодарю. – alecxe
Если вы передаете словари шаблонам вместо объектов, используйте следующий фильтр: 'def private (dic, key): return dic [key]' –