Django - Многочисленные модели данных с форматом json
У меня получается использовать datatable с моделью одного класса, получая данные в формате json. https://datatables.net/
Однако, я хотел бы добавить еще один класс с внешним ключом в models.py. Что-то вроде этого:
class AnotherModel(models.Model):
description = models.CharField(max_length=256)
ibvs = models.ForeignKey(Ibv, on_delete=models.CASCADE)
Как я могу организовать функцию json get_data и ajax?
И я совсем запутался в формате json файла и как передать значения AnotherModel в таблицу (я хочу показать все модели в одной таблице)
MODELS.PY
class Ibv(models.Model):
MUESTRAS = (
('cDNA', 'cDNA'),
('RNA', 'RNA'),
)
# id = models.IntegerField(primary_key=True)
code = models.CharField(max_length=256)
muestra = models.CharField(max_length=256, null=True, choices=MUESTRAS)
ship = models.CharField(max_length=256)
num = models.CharField(max_length=256)
enc = models.CharField(max_length=256)
obv = models.CharField(max_length=256)
result = models.TextField()
created_at = models.DateField(auto_now=True)
def __str__(self):
return self.result
# json
def get_data(self):
return {
'id': self.id,
'code': self.code,
'muestra': self.muestra,
'ship': self.ship,
'num': self.num,
'enc': self.enc,
'obv': self.obv,
'result': self.result,
'created_at': self.created_at,
}
VIEWS.PY
def ibv_json(request):
ibvs = Ibv.objects.all()
data = [ibv.get_data() for ibv in ibvs]
response = {'data': data}
return JsonResponse(response)
BASE.HTML
var table = $('#example').DataTable({
// json to fill the table rows and columns
"ajax": {
url: "/json",
type: "GET"
},
"columns": [
{"data": "id"},
{"data": "code"},
{"data": "muestra"},
{"data": "ship"},
{"data": "num"},
{"data": "enc"},
{"data": "obv"},
// {"data": "result"},
{"data": "created_at"},