Urlize DRF Link - PullRequest
       13

Urlize DRF Link

3 голосов
/ 11 апреля 2019

У меня есть сериализатор DRF:

class ActivitySerializer(serializers.ModelSerializer):
    link = serializers.CharField(source='get_analytic_link', allow_null=True)
    class Meta:
        model = Activity
        fields = ['link',]

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

<td>{{ activity.get_analytic_link|urlize }}</td>

Как я могу повторить это поведение в DRF, чтобы ссылки были кликабельными?

1 Ответ

1 голос
/ 11 апреля 2019

Похоже, что это работа на веб-интерфейсе, и вы должны использовать функцию DataTable columns.render .

Пример:

var responseObj = [
    { "information": "A1", "weblink": "http://www.microsoft.com" },
    { "information": "A2", "weblink": "http://www.yahoo.com" },
    { "information": "A3", "weblink": "http://www.google.com" },
    { "information": "A4", "weblink": "http://www.duckduckgo.com" }
];

$('#example').dataTable({
   "data": responseObj,
   "columns": [
      { "data": "information" }, 
      { 
         "data": "weblink",
         "render": function(data, type, row, meta){
            if(type === 'display'){
                data = '<a href="' + data + '">' + data + '</a>';
            }

            return data;
         }
      } 
   ]
});
...