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"},
Вернуться на верх