Я пытаюсь добавить новую запись в таблицу модели своего счета, но все равно получаю сообщение error
IntegrityError нулевое значение в столбце " shipping_address_owner_id "нарушает ограничение not-null
Я предполагаю, что это столбец shipping_address_owner
, который использует ForeignKey , который связывает его со второй таблицей с именем ShippingAddress
.
Я пытаюсь добавить следующую запись в свою таблицу моделей paymentInvoice
, но получаю указанную выше ошибку
{
"shipping_address_owner": "Becky",
"product": [
"Sepit"
],
"quantity": 1,
"payment_made": "2600.00"
}
Ниже мой счет-фактура таблица моделей
class paymentInvoice(models.Model):
shipping_address_owner = models.ForeignKey(ShippingAddress, on_delete=models.CASCADE, related_name="customer_invoice")
product = models.ManyToManyField(Product, related_name='product_invoice')
date = models.DateField(default=datetime.now)
invoice_id = models.CharField(max_length=50, unique=True, default=increment_invoice_number)
quantity = models.PositiveSmallIntegerField()
payment_made = models.DecimalField(max_digits=20, decimal_places=2)
def __str__(self):
return self.shipping_address_owner.customer.name
Мой Адрес доставки модель
class ShippingAddress(models.Model):
customer = models.ForeignKey(Customer, on_delete=models.CASCADE, related_name="customer_ship_address")
address = models.CharField(max_length=50, blank=True)
zip_code = models.CharField(max_length=12, blank=True)
def __str__(self):
return self.customer.name
Мой сериализатор файл
class paymentInvoiceSerializer(serializers.ModelSerializer):
product = serializers.SerializerMethodField()
shipping_address_owner = serializers.SerializerMethodField()
class Meta:
model = paymentInvoice
fields = '__all__'
def get_shipping_address_owner(self, instance):
return instance.shipping_address_owner.customer.name
def get_product(self, instance):
names = []
for product in instance.product.all(): # get all products field
names.append(product.name) # append the product name
return names