Htmx и django: возврат заголовка HX-Trigger с данными json показывает ошибку `SyntaxError: JSON.parse...`.

Я следую примерам в https://htmx.org/headers/hx-trigger/

моя точка зрения

def my_view(request):
    res = render(request, 'index.html')
    res.headers["HX-Trigger"] = ...
    return res

этот код работает

res.headers["HX-Trigger"] = "showMessage"

в то время как приведенный ниже код приведет к ошибке SyntaxError: JSON.parse: expected property name or '}' at line 1 column 2 of the JSON data

res.headers["HX-Trigger"] = {"showMessage": "Here Is A Message"}

Что мне делать?

В качестве заголовка нужно передать правильную строку JSON - не словарь, потому что словарь не будет автоматически преобразован в JSON (поэтому клиент не сможет его разобрать).

Сработает следующее:

res.headers["HX-Trigger"] = '{"showMessage": "Here Is A Message"}'   # Note, this is a string

или, если вы не хотите генерировать строку JSON вручную:

import json

res.headers["HX-Trigger"] = json.dumps({"showMessage": "Here Is A Message"})
Вернуться на верх