nuBacuk
@nuBacuk
Python/Linux

Как проверить поле manytomany на наличие в нем объекта?

Имеется модели пользователя, и товара
class User(AbstractBaseUser):
	purchased = models.ManyToManyField('Movie', verbose_name='Купленные товары', blank=True)

class Movie(models.Model):
	title = models.CharField(verbose_name='Название', max_length=100)


Как можно проверить наличие видео, в поле purchased?
  • Вопрос задан
  • 1390 просмотров
Решения вопроса 2
pinkevich
@pinkevich
Developer
Как вариант
movie1 = Movie.objects.get(pk=1)
movie2 = Movie.objects.get(pk=2)
User.objects.filter(pk=1, purchased__in=[movie1, movie2]).exists()

или
movie = Movie.objects.get(pk=1)
user = User.objects.get(pk=1)
user.purchased.filter(pk=movie.pk).exists()
Ответ написан
@deliro
movie = Movie.objects.get(pk=1)
user = User.objects.get(pk=1)

movie in user.purchased.all()
>>> False

user.purchased.add(movie)

movie in user.purchased.all()
>>> True
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы