2016-06-25 19 views
1

Mit django-tables2, ich versuche, die ID jedes Elements meines Modells als "Attribut" von jedem einzelnen <td> entsprechend einem bestimmten <tr> zu setzen.Ist es möglich, den Primärschlüssel der Zeile als ID-Attribut zu jedem bei Verwendung von Django-Tabellen2 anwenden?

ich ein dict in der Spalte bin mit Attribute Definition wie folgt:

class MainTable(tables.Table): 
    id = tables.Column() 
    Client = tables.Column(attrs={'td': { 
     'data-name': 'Client', 
     'data-type': 'text', 
     'data-pk': lambda record: record.pk,  
     'data-url': 'path/to/url', 
     'data-placeholder': 'New Client', 
     'data-title': 'New Client' }}) 

Jedes Attribut korrekt mit Ausnahme des 'Daten-pk' anwenden. Gibt es eine Möglichkeit, den Primärschlüssel in das Diktat zu bekommen? Oder eine andere Möglichkeit, dieses Attribut mit django-tables2 zu setzen?

Antwort

0

Derzeit können Sie das tun, nicht auf Spalten, aber Sie können auf rows:

class Table(tables.Table): 
    class Meta: 
     row_attrs = { 
      'data-pk': lambda record: record.pk 
     } 

ohnehin mehr Sinn machen könnte, da ein Datensatz in eine Zeile abgebildet wird, nicht auf eine einzelne Tabellenzelle in einem Reihe.

Ich kann die Verwendung für berechenbare attr s mit Argumenten auf Tabellenspalten sehen, also wenn Sie sich entscheiden, dass Sie es brauchen, sind Sie willkommen zu open a Pull request.

+0

Danke für die Antwort @Jieter. Ich habe es geschafft, indem ich die Tabelle.html von django-tables2 angepasst habe. Musste es innerhalb der Tag einschließen: '' –