Вы можете пометить ForeignKey
как primary_key=True
[Django -doc] :
class Product(models.Model):
name = models.CharField(max_length=100)
description = models.CharField(max_length=4096)
price = models.DecimalField(max_digits=15, decimal_places=2)
class Stock(models.Model):
product = models.OneToOneField(
Product,
<b>primary_key=True</b>,
on_delete=models.CASCADE
)
name = models.CharField(max_length=100)
description = models.CharField(max_length=4096)
price = models.DecimalField(max_digits=15, decimal_places=2)
quantity = models.IntegerField()
Поскольку это первичный ключ, это уникальное поле. Таким образом, вы можете не создавать два или более Stock
объекта, которые ссылаются на один и тот же Product
.