Невозможно получить доступ к данным по внешнему ключу в таблицах данных

Ниже я привел javascript. Пожалуйста, обратите внимание на тот, который имеет имя "учитель". Этот учитель, по сути, является внешним ключом. Однако когда я пытаюсь вывести строку на консоль, она не показывает мне конкретное значение массива как объект или данные, возвращаемые как объект, а вместо этого возвращает строку, поскольку в моделях django используется def __str__. Поэтому я не могу получить конкретное значение, т.е. teacher.first_name или в данном случае data.first_name

P.S. Я использую django-datatables-view для предоставления ajax url.

$(document).ready( function () {
      $('.table').DataTable({
        "columnDefs": [
          {
            name: 'date_created',
            orderable: true,
            searchable: true,
            targets: [0],
          },
          {
            name: 'name',
            orderable: true,
            searchable: true,
            targets: [1],
          },
          {
            name: 'email',
            orderable: true,
            searchable: true,
            targets: [2],
          },
          {
            name: 'phone',
            orderable: true,
            searchable: true,
            targets: [3],
          },
          {
            name: 'course',
            orderable: true,
            searchable: true,
            targets: [4],
          },
          {
            name: 'remarks',
            orderable: true,
            searchable: true,
            targets: [5],
          },
          {
            name: 'teacher',
            orderable: true,
            searchable: true,
            targets: [6],
            render: function(data, type, row){
              return data.first_name + "<br>(" + data + ")" 
            }
          },
          {
            name: 'is_enrolled',
            orderable: true,
            searchable: true,
            targets: [7],
            render: function(data, type, row){
              if (data === "True"){
                return "<i class='fa fa-check text-success text'></i>"
              }
              else{
                return "<i class='fa fa-times text-danger text'></i>"
              }
            }
          },
          {
            name: 'status',
            orderable: true,
            searchable: true,
            targets: [8],
          },
          {
            name: 'get_lead.owner',
            orderable: true,
            searchable: true,
            targets: [9],
          },
        ],
        order: [],
        "processing": true,
        "language": {
            processing: '<i class="fa fa-spinner fa-spin fa-3x fa-fw"></i><span class="sr-only">Loading...</span> '},
        "serverSide": true,
        "ajax": "{% url 'referrals-json' %}",
        scrollY: 500,
        dom : 'flrBtip',
        searchHighlight: true,
        buttons : [
          { extend: 'excel', text: 'Export', className: 'btn-primary' }
        ],
        "lengthMenu": [ [10,50,100,-1], [10,50,100,"All"] ]
      });
    } );

Я совершенно упустил из виду, что библиотека предоставляет метод 'render_column', который делает то же самое, что и render option в секции jquery datatables. Вот что я сделал:

def render_column(self, row, column):
        # We want to render teacher as a custom column
        if column == 'teacher':
            print row.teacher.first_name, row.teacher.email
            # escape HTML for security reasons
            return '{0}<br>({1})'.format(row.teacher.first_name, row.teacher.email)
        else:
            return super(ReferralsJSON, self).render_column(row, column)
Вернуться на верх