Я создаю цифровые продукты для своего приложения электронной коммерции.
Я создал модель Product_activation для активации определенного продукта всякий раз, когда пользователь подписан на продукт
Я сделал следующее:
class Profile(models.Model):
date = models.DateTimeField(auto_now_add=True)
full_Name = models.CharField(max_length=32,blank=True)
name = models.OneToOneField(settings.AUTH_USER_MODEL,on_delete=models.CASCADE)
e_mail = models.EmailField(max_length=70,blank=True)
subscribed_products = models.ManyToManyField(Product,related_name='products_subscribed',blank=True)
class Product(models.Model):
title = models.CharField(max_length=32)
price = models.DecimalField(default=10000.00,max_digits=10,decimal_places=2)
class Product_activation(models.Model):
user = models.ForeignKey(settings.AUTH_USER_MODEL,on_delete=models.CASCADE,null=True,blank=True)
product = models.ForeignKey(Product,on_delete=models.CASCADE,related_name='product_activate')
activate = models.BooleanField(default=False)
Я создал этот сигнал ниже:
@receiver(pre_save, sender=Profile)
def product_activation(sender,instance,*args,**kwargs):
if instance.subscribed_products:
Product_activation.objects.update_or_create(
User=instance.name,
product=instance.subscribed_products,
activate=False,
deactivate=True
)
Но возникла проблема в product=instance.subscribed_products
строке кода.
Это дает мне следующее сообщение об ошибке:
TypeError: int() argument must be a string, a bytes-like object or a number, not 'ManyRelatedManager'
Может кто-нибудь сказать мне, что я делаю неправильно в своем коде?
Спасибо