Django обратное ограничение внешнего ключа

У меня есть 2 модели, Asset и Trade. Модель торговли имеет Asset, связанный внешним ключом, который допускает нулевые значения в зависимости от статуса торговли. Актив всегда должен быть связан с торговлей по внешнему ключу. У актива может быть много сделок, но у сделки может быть только один актив. Проблема в том, что иногда актив создается без сделки, и это должно быть неудачным, потому что это приводит к дальнейшим ошибкам, так как это невозможно. Как сделать так, чтобы обратный внешний ключ никогда не был нулевым для модели Asset, но сохранить параметр on_delete как SET_NULL?

class Trade(models.Model):
    status = models.CharField(max_length=10)
    asset = models.ForeignKey(
        Asset,
        on_delete=models.SET_NULL,
        blank=True,
        null=True,
)
    
class Asset(models.Model):
    price = models.DecimalField(max_digits=16, decimal_places=2)
    

Вам следует использовать Many to one вместо foraing key

Вернуться на верх