В таблице 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}
]
}