Вы имеете в виду, как это?
class Transactions(models.Model):
user = models.ForeignKey(User, on_delete=models.CASCADE)
stock_position = models.ForeignKey(StockPosition,
on_delete=models.CASCADE)
share = models.IntegerField()
class Meta:
unique_together = (('user', 'stock_position', 'share'),)
Если вы используете этот уникальный индекс , вы можете вставить столько пользовательских / stock_position дубликатов, сколько хотите, до тех пор, пока share
колонка отличается каждый раз.В противном случае IntegrityError
будет поднят (что обычно / всегда должно быть в вашем коде исключением)