Как работает эта штука ".set()" в родовых отношениях в django? Если я хочу создать объект с помощью оболочки python

Вот мои модели

Пользователь, Бизнес имеет родовое отношение с Депозитом

class Deposit(BaseModel):
    amount = models.IntegerField(default=0, blank=False)
    # set up generic foreign keys
    content_type = models.ForeignKey(ContentType, on_delete=models.CASCADE)
    object_id = models.PositiveIntegerField()
    depositor = GenericForeignKey()

    def __str__(self):
        return "%s %s made by %s" % (self.amount, self.deposit_type, self.depositor)

class User(AbstractUser, BaseModelMixin):
   
    first_name = models.CharField(max_length=256)
    last_name = models.CharField(max_length=256)
    employers = models.ManyToManyField(Business, through="Employment")
    address = models.ForeignKey(Address, null=True, blank=True, on_delete=models.CASCADE)
    email = models.EmailField("Email Address", blank=True, unique=True)
    deposits = GenericRelation("Deposit", related_query_name="user")

class Business(BaseModel):
    name = models.CharField(max_length=255)
    tax_id = models.CharField(max_length=255, blank=True, default="")
    contact_email = models.CharField(max_length=255)
    contact_first_name = models.CharField(max_length=255)
    contact_last_name = models.CharField(max_length=255)
    contact_phone = models.CharField(max_length=255, blank=True, default="")
    description = models.TextField(blank=True, default="")
    address = models.ForeignKey(Address, null=True, blank=True, on_delete=models.CASCADE)
    deposits = GenericRelation("Deposit", related_query_name="business")

когда я создаю объект Deposit с помощью оболочки Python

business = Business.objects.get(pk=1)
deposits= Deposit.objects.create(business=business, amount=50)

Я получаю эту ошибку


TypeError: Direct assignment to the reverse side of a related set is prohibited. Use business.set() instead.

Как решить эту проблему?

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