Одно из решений, с которыми я пришел, - генерировать URL-адреса на бэкенде и каким-то образом передавать их в браузер.
Это может не подходить в каждом случае, но у меня есть таблица (заполненная AJAX), и нажатие на строку должно привести пользователя к единственной записи из этой таблицы.
(я использую django-restframework и Datatables ).
Каждая запись из AJAX имеет прикрепленный URL:
class MyObjectSerializer(serializers.ModelSerializer):
url = SerializerMethodField()
# other elements
def get_url(self, obj):
return reverse("get_my_object", args=(obj.id,))
при загрузке ajax каждый URL-адрес присоединяется в качестве атрибута данных к строке:
var table = $('#my-table').DataTable({
createdRow: function ( row, data, index ) {
$(row).data("url", data["url"])
}
});
и при клике мы используем этот атрибут данных для URL:
table.on( 'click', 'tbody tr', function () {
window.location.href = $(this).data("url");
} );