У меня есть такая модель:
class Component(models.Model)
html_name = models.CharField(max_length=100) #example value: header_1.html
class MyModel(models.Model):
components = models.ManyToManyField(Component ...)
В моем проекте Django у меня следующая структура.
root
----myapp
--------templates
------------myapp
----------------templates
--------------------default_template_1.html
----------------components
--------------------header_1.html
В моем шаблоне (default_template_1. html) Я хотел бы сделать что-то вроде этого:
{% for applied_component in mymodel.components.all %}
{% with '../components/'|add:applied_component as component_template %}
{% include component_template %}
{% endwith %}
{% endfor %}
Это дает мне ошибку: TemplateDoesNotExist
. Однако, если я извлеку эту строку внутри component_template
и просто закодирую ее, включение будет работать нормально. Так что, похоже, это что-то с тем фактом, что это переменная.
Я также пытался изменить include на: {% include component_template|stringformat:"i" %}
Но это дает мне:
PermissionError at /app/event/1/
[Errno 13]