Знам, че можете да включите javascript в форма чрез използване на django форми Media API и js_initializer()
метод и аз го направих така успешно. Показва.
Има ли специфичен механизъм за това? Или просто трябва да включите js / css файловете в шаблона на страницата? Аз наистина бих искал да избегна включването им във всяка страница, която има StreamField биха могли, може имам този блок, тъй като по-голямата част е спечелил, и това означава много загубено време за зареждане на страницата.
Отговори:
3 за отговор № 1Това беше обсъдено по-рано https://github.com/wagtail/wagtail/issues/2490 - Не съм го опитвал, но вярвам, че бихте могли да го приложите, като определите a frontend_media
свойство на съответните блокови класове, което връща a django.forms.Media обект, заедно с функция (методът на модела на страницата вероятно е подходящ ...), който събира тези определения на медиите в един обект:
from django.forms import Media
class MyPage(Page):
body = StreamField(...)
def body_media(self):
media = Media()
for block_val in self.body:
if hasattr(block_val.block, "frontend_media"):
media += block_val.block.frontend_media
return media