Я использую django_tables2 для отображения некоторых данных, однако в одном из столбцов используется внешний ключ, и я не могу понять, почему эти данные не отображаются.
Я знаю, что внешний ключ работает, так как я могу получить к нему доступ в оболочке, используя:
In [25]: b = Forms.objects.get(id = "v_akkadianakka1240-mM-1")
In [26]: b.source.display
Out[26]: 'Black 2000'
Но мне не ясно, как это переводится в класс table.py.
model.py
class Sources(models.Model):
category = models.TextField(db_column='CATEGORY', blank=True)
bibtexkey = models.TextField(db_column='BIBTEXKEY', blank=True, primary_key = True)
display = models.TextField(db_column='DISPLAY', blank=True, null=True)
class Meta:
managed = False
db_table = 'sources'
def __unicode__(self):
return self.display
class Forms(models.Model):
id = models.TextField(db_column='ID', blank=True, primary_key = True) # Field name made lowercase.
local_id = models.IntegerField(db_column='Local_ID', blank=True, null=True) # Field name made lowercase.
language_id = models.TextField(db_column='Language_ID', blank=True, null=True) # Field name made lowercase.
parameter_id = models.TextField(db_column='Parameter_ID', blank=True, null=True) # Field name made lowercase.
value = models.TextField(db_column='Value', blank=True, null=True) # Field name made lowercase.
form = models.TextField(db_column='Form', blank=True, null=True) # Field name made lowercase.
segments = models.IntegerField(db_column='Segments', blank=True, null=True) # Field name made lowercase.
comment = models.TextField(db_column='Comment', blank=True, null=True) # Field name made lowercase.
source = models.ForeignKey(Sources, on_delete=models.CASCADE, db_column='source')
cognacy = models.IntegerField(db_column='Cognacy', blank=True, null=True) # Field name made lowercase.
loan = models.IntegerField(db_column='Loan', blank=True, null=True) # Field name made lowercase.
glottocode = models.TextField(blank=True, null=True)
class Meta:
managed = False
db_table = 'forms'
table.py
class LanguageDetailTable(tables.Table):
class Meta:
model = Forms
template_name = "django_tables2/bootstrap.html"
fields = ("parameter_id", "form", "forms.source.display", )