В моем приложении django происходит что-то странное, и я не понимаю.
У меня две разные таблицы ( employeeProfile & PurchaserShippingDetail ) у каждого есть поле с отношением OneToOneField
, но с 1-й таблицей ( employeeProfile ) в поле user , который использует OneToOneField, я могу передать строковое представление, например, Michael с использованием api, и я не получаю ошибку, но в моей второй таблице, которая имеет аналогичную структуру, когда я добавляю строковое представление, я получаю
IntegrityError в / api / clients / shipping / null value в столбце "owner_id" нарушает ограничение не-null
1-я модель таблицы (работает нормально)
class employeeProfile(models.Model):
image = models.ImageField(default='default.png',upload_to='employee_photos/%Y/%m/%d/')
user = models.OneToOneField(CustomUser, on_delete=models.CASCADE, related_name="employee_profile")
phone_no = models.CharField(max_length=10, unique=True)
def __str__(self):
return self.user.name
2-я табличная модель ( та, которая выдает «owner_id» нарушает ошибку ограничения not-null )
class purchaserShippingDetail(models.Model):
frequent_customer = models.BooleanField(default=False)
owner = models.OneToOneField(Purchaser, on_delete=models.CASCADE, related_name="purchaser_shipping")
address = models.CharField(max_length=12, blank=True)
zip_code = models.CharField(max_length=12, blank=True)
location = models.CharField(max_length=255)
def __str__(self):
return self.owner.name
Покупатель Модель
class Purchaser(models.Model):
name = models.CharField(max_length=50)
phone = models.CharField(max_length=20, unique=True)
email = models.EmailField(max_length=255, unique=True, blank=True)
data_added = models.DateField(default=datetime.date.today)
def __str__(self):
return self.name
сериализатор для PurchaserShippingDetail модель
class purchaserShippingDetailSerializer(serializers.ModelSerializer):
owner = serializers.StringRelatedField(read_only=True)
class Meta:
model = purchaserShippingDetail
fields = '__all__'
Views.py для покупателя Ши ppingDetail model
class purchaserShippingDetailsListCreateView(ListCreateAPIView):
serializer_class = purchaserShippingDetailSerializer
queryset = purchaserShippingDetail.objects.all()
EDIT: Добавлена таблица модели покупателя