Я пытаюсь создать объект «Проспект», который вложен в мой сериализатор «Назначение». Но при публикации я получаю сообщение об ошибке: « Сбой ограничения NOT NULL: schedule_appointment.prospect_id ».
Полагаю, что Django ожидает, что я передам проспект_id, но как это сделать? Я go об этом? В другом месте я читал, что альтернативой является установка внешнего ключа в значение null = True, но в моем случае назначение ДОЛЖНО иметь перспективу.
Есть предложения?
Сериализаторы
class ProspectSerializer(serializers.ModelSerializer):
class Meta:
model = Prospect
fields = [ 'id','first_name', 'last_name', 'email']
class AppointmentSerializer(serializers.ModelSerializer):
prospect = ProspectSerializer()
class Meta:
model = Appointment
fields = ['appointment_time', 'unit', 'staff', 'prospect']
def create(self, validated_data):
prospect_data = validated_data.pop('prospect')
appointment = Appointment.objects.create(**validated_data)
Prospect.objects.create(appointment=appointment, **prospect_data)
return appointment
Модели
class Appointment(models.Model):
appointment_time = models.DateTimeField()
unit = models.ForeignKey(Unit, on_delete=models.CASCADE)
staff = models.ForeignKey(Staff, on_delete=models.CASCADE)
prospect = models.ForeignKey(Prospect, on_delete=models.CASCADE)
class Prospect(models.Model):
first_name = models.CharField(max_length=50)
last_name = models.CharField(max_length=50)
email = models.EmailField(max_length=30)