Как работает эта штука ".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.
Как решить эту проблему?