3

我有一个 DRF 序列化器:

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

在可浏览 API 中,链接是可点击的。但是,当它们通过 JSON 端点提供给 DataTable 时,它​​们(可以预见)是不可点击的。在普通的 Django 中,我会做这样的事情:

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

我如何在 DRF 中复制该行为以使链接可点击?

4

1 回答 1

1

看起来这是前端的工作,您应该使用 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;
         }
      } 
   ]
});
于 2019-04-10T22:17:39.683 回答