2016-07-23 11 views
1

Kann jemand ein klares Beispiel dafür geben, wie man eine Tabelle mit django-tables2 zeigt, die Daten von zwei (oder mehr) verwandten Modellen auswählt und darstellt?Wie man einen Join mit zwei Tabellen mit django-tables2 macht

Ich habe viele Beiträge darüber gefunden, die meisten von ihnen ziemlich alt, und keiner wirklich ein funktionierendes Beispiel.

Das sind meine Modelle:

class Person(models.Model): 
    name = models.CharField(verbose_name="Name",max_length=50) 
    fname = models.CharField(verbose_name="F.Name",max_length=50) 

class Speech(models.Model): 
    person = models.ForeignKey(Person, on_delete=models.CASCADE) 
    said = models.CharField(verbose_name="Said",max_length=50) 

ich einfach eine Tabelle mit Spalten "Name F.Name, Said" zeigen wollen. Was ist der beste Weg? Und mit mehreren Tischen?

Vielen Dank im Voraus.

Antwort

1

Nun, niemand beantwortete meine Frage. Nach dem Graben und Versuchen habe ich einen Weg gefunden, Felder aus verwandten Modellen in einer Tabelle anzuzeigen. Die Sache ist die Tabellendefinition in tables.py so sein sollte:

class SpeechTable(tables.Table): 
    name = tables.Column(accessor='person.name') 
    fname = tables.Column(accessor='person.fname') 
    said = tables.Column() 
    class Meta:   
     attrs = {"class": "paleblue"} 

Nicht sicher, ob dies der beste Weg ist, aber es ist einfach und funktioniert gut.