Объединить 2 модели табличных данных в 1 модель (таблицу), Django

models.py:

class NewJsonData(models.Model):
    speed = models.IntegerField()
    heading = models.IntegerField()
    altitude = models.FloatField()
    accuracy = models.FloatField()
    longitude = models.FloatField()
    altitudeAccuracy = models.FloatField(null=True)
    latitude = models.FloatField()
    
    pass

class NewApiJsonData(models.Model):
    _id = models.CharField(null=True, max_length=100)
    coords = models.ForeignKey(
        NewJsonData, on_delete=models.CASCADE, null=True, blank=True)
    mocked = models.BooleanField()
    timestamp = models.FloatField()
    _v = models.IntegerField(null=True)
    createdAt = models.CharField(null=True, max_length=100)
    updatedAt = models.CharField(null=True, max_length=100)

Я пытался создать новую таблицу с содержимым обеих моделей, как показано на рисунке ниже.enter image description here

Таблица NewJsonData выглядит следующим образом: enter image description here

и таблица NewApiJsonData выглядит так:

enter image description here

Вы можете наследовать одну модель другой в django

class NewJsonData(models.Model):
    speed = models.IntegerField()
    heading = models.IntegerField()
    altitude = models.FloatField()
    accuracy = models.FloatField()
    longitude = models.FloatField()
    altitudeAccuracy = models.FloatField(null=True)
    latitude = models.FloatField()

class NewApiJsonData(NewJsonData): #inherit above model
    _id = models.CharField(null=True, max_length=100)
    coords = models.ForeignKey(
        NewJsonData, on_delete=models.CASCADE, null=True, blank=True)
    mocked = models.BooleanField()
    timestamp = models.FloatField()
    _v = models.IntegerField(null=True)
    createdAt = models.CharField(null=True, max_length=100)
    updatedAt = models.CharField(null=True, max_length=100)

поэтому результирующий NewApiJsonData содержит поля NewJsonData

Это классы. Используйте множественное наследование, если вы знаете, что не будет конфликтов:

class Combined(NewJsonData, NewApiJsonData):
  pass
Вернуться на верх