В таблице diagnostic_patient нет столбца с именем test_id

Я попытался отправить несколько экземпляров в одном запросе, но получил эту ошибку Таблица diagnostic_patient не имеет столбца test_id. Из выбранного ключа id будет сохранен в столбце test_id и имя будет сохранено в столбце test_name.

models.py

class Test(models.Model):
    name = models.CharField(max_length=100)
    price = models.DecimalField(max_digits=6, decimal_places=0)

    def __str__(self):
        return self.name
    



class Patient(models.Model):
    name = models.CharField(max_length=100)
    email = models.EmailField(max_length = 254)
    age = models.DecimalField(max_digits=6, decimal_places=0)
    gender = models.CharField(max_length=100)
    phone = models.DecimalField(max_digits=6, decimal_places=0)
    test_id = models.IntegerField()
    test_name = models.CharField(max_length=100)
    t = models.ForeignKey(Test, on_delete=models.CASCADE, related_name='selected')
    total_price = models.DecimalField(max_digits=6, decimal_places=0)
    advance = models.DecimalField(max_digits=6, decimal_places=0)
    due = models.DecimalField(max_digits=6, decimal_places=0)
    role = models.CharField(max_length=100,default='Patient')

serializers.py

class TestSerializer(serializers.ModelSerializer):
    class Meta:
        model = Test
        fields = ['id', 'name','price']


class PatientSerializer(serializers.ModelSerializer):
    selected = TestSerializer(many=True)
    class Meta:
        model = Patient
        fields = ['name', 'email', 'age', 'gender', 'phone', 'selected', 'total_price', 'advance', 'due', 'role']

    def create(self, validated_data):
        tracks_data = validated_data.pop('selected')
        a = Patient.objects.create(**validated_data)
        for track_data in tracks_data:
            Patient.objects.create(**track_data)
        return a

json post data:

{
"name":"df",
"email":"d@gmail.com",
"age":"21",
"gender":"Male",
"phone":"234",
"total_price":86,
"advance":0,
"due":86,
"selected":[
{"id":8,"name":"sdf","price":34},
{"id":9,"name":"dg","price":52}
]
}
Вернуться на верх