ManyToManyField не могу добавить обьекты
Вот ошибка:
Direct assignment to the forward side of a many-to-many set is prohibited. Use items.set() instead.
f = Watchlist(watcher = request.user, items = listing)
Мне нужно чтобы пользователь мог добавлять желаемые аукционы в watchlist:
f = Watchlist(watcher = request.user, items = listing)
Watchlist.items.set(listing)
f.save()
for i in Listing.objects.all():
Watchlist.items.add(i)
В коде сверху я попытался это сделать
вот модель watchlist
'a:
class Watchlist(models.Model):
watcher = models.OneToOneField(User, on_delete = models.CASCADE)
items = models.ManyToManyField(Listing)
модель User
:
class User(AbstractUser):
username = models.CharField(max_length=32, unique = True)
USERNAME_FIELD = 'username'
REQUIRED_FIELDS = ()
модель Listing
:
class Listing(models.Model):
title = models.CharField(max_length= 64)
description = models.CharField(max_length= 128)
img = models.ImageField(upload_to = 'auctions/media/images')
isActive = models.BooleanField(default= True, blank=True)
owner = models.ForeignKey(User, on_delete = models.CASCADE, related_name="user")
categories = models.ForeignKey(Category, on_delete = models.CASCADE, blank= True, null = True, related_name = "category", default = "None")
price = models.IntegerField(default = 0)
def __str__(self):
return self.title
Как я могу реализовать эту функцию?
Django 4.1.4, Python 3.10.5
Источник: Stack Overflow на русском