Django 3.0.6
models.py
class Post(models.Model):
body = models.TextField()
view_mixins.py
class RenderBodyMixin(BaseDetailView):
"""
Lets using template tags in body field in admin site.
"""
custom_scripts = set()
def get_context_data(self, **kwargs):
context = super().get_context_data(**kwargs)
post_body = "{% load image %}\n{% load widget %}\n{% load hyper_link %}\n{% load code_sample %}\n" + self.object.body
context['body'] = Template(post_body).render(Context())
views.py
class PostDetailView(RenderBodyMixin,
DetailView):
model = Post
Задача
Все это сделано для того, чтобы пользователи могли вставлять теги шаблонов в сообщения. Например: widget {% n_m n = 1 m = 2%}
Это покажет что-то вроде «1/5». Но основная идея в том, что для этого нужен специальный файл css.
Это очень базовый пример c, пожалуйста, не воспринимайте его слишком точно. Это все о пользовательских ресурсах для определенных страниц. Какие ресурсы понадобятся, заранее не известно. Пользователи будут использовать теги шаблонов. Этого достаточно, чтобы они знали.
Для тегов шаблонов может потребоваться, например, jQuery, jQuery UI или что-то еще.
Я не могу добавить все эти скрипты и CSS файлы заранее, так как это крайне неэффективно. Итак, мне нужно поставить их в очередь для каждой конкретной страницы и только в том случае, если они нужны тегам шаблона.
Не могли бы вы сказать, можно ли в этом случае автоматически добавлять зависимости в контекст?
Может стоит использовать кастомный процессор контекста? Но как?