Я пытаюсь создать приложение, которое отображает некоторое подмножество базы данных, которое у меня есть, однако оно не совсем в том формате, который я хочу отобразить.
например,
Текущие данные (и модель) организованы так:
id value
a1 3
a2 3
a3 4
b1 5
b2 4
b3 4
Но я хочу отобразить их как:
id a b
1 3 5
2 3 4
3 4 4
Я могу легко внести это изменение, если я переключусь на pandas dataframe, но эта проблема предполагает, что django_tables2 не может этого сделать.
Есть ли другие варианты, которые я могу изучить? Ниже приведены мои модели, таблицы и файлы представлений. Столбцы в примере относятся к Parameter_ID и Forms.
models.py
class Forms(models.Model):
id = models.TextField(db_column='ID', blank=True, null=False, 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.TextField(db_column='Source', blank=True, null=True) # Field name made lowercase.
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(db_column='glottocode', blank=True, null=True) # Field name made lowercase.
class Meta:
managed = False
views.py
def language_detail(request, pk):
table = LanguageDetailTable(Forms.objects.filter(glottocode=pk).values())
return render(request, "kb/language_detail.html", {
"table": table
})
tables.py
class LanguageDetailTable(tables.Table):
class Meta:
model = Forms
template_name = "django_tables2/bootstrap.html"
fields = ("parameter_id", "form", "source", )