2016-12-30 3 views
0

Ich versuche, eine URL in den "Guest Name" zu übergeben, wo der Benutzer auf den Benutzer klickt und ein modales Pop-Up erscheint, das ein Formular anzeigt, dass Sie Informationen eingeben/anzeigen können zu diesem bestimmten Gast. Ich habe versucht, mit der Renderfunktion herumzualbern, hatte aber nicht viel Erfolg. Wenn ich das rein in Django machen würde, würde ich das Äquivalent von {% 'namespace: guest_data_form' guest.pk%} haben wollen, was eine Ansicht aufrufen würde, um das Formular in einem Modal darzustellen. Wie würde ich dasselbe innerhalb von Databases erreichen?Übergeben von URL-Django-Muster in Datatables Spalte

<script type="text/javascript" language="javascript" class="init"> 
    $(document).ready(function() { 
     $('#example').DataTable({ 
      autoWidth: true, 
      ajax: { 
       url: "{% url 'guest_data_api' guest.id %}" 
      }, 
      columns: [ 
       { "data" : "Room Number" }, 
       { "data" : "Occupancy" }, 
       { "data" : "Guest Name" }, 
       { "data" : "Check In" }, 
       { "data" : "Check Out" } 
      ], 
      "columnDefs": [ 
       { "width": "15%", "targets": 2 } 
      ] 
     }); 
    }); 
</script> 

Antwort

1

Mit Datatables können Sie eine Funktion für den Wert von "data" definieren. So können Sie ersetzen {"data" : "Guest Name"} mit:

"data": function (row) { 
    var $a = $('<a></a>').attr('href', row.guest_name.link).text(row.guest_name.text); 
    return $a.prop('outerHTML'); 
} 

Dies vorausgesetzt, dass Sie die guest_name Säule mit einem JSON-Objekt ersetzt wird, die einen Link/Text-Attribut verfügt. Sie können den Link auch einfach als JavaScript-Zeichenfolge mit Escapezeichen übergeben, wenn Sie sicher sind, dass Sie Ihre Datenseite/js-Seite einfacher haben möchten.

Weitere Informationen finden Sie hier: https://datatables.net/reference/option/columns.data

Verwandte Themen