@dmitriystrel00

Как правильно выбрать запись из БД с точным набором связей?

Для примера:
# models.py
class Tag(models.Model):
    name = models.CharField()
    content = models.ManyToManyField('Content', through='TagContent')

class Content(models.Model):
    title = models.CharField()
    description = models.TextField()
    tags = models.ManyToManyField('Tag', through='TagContent')

class TagContent(models.Model):
    tag = models.ForeignKey('Tag', on_delete=models.CASCADE)
    content = models.ForeignKey('Content', on_delete=models.CASCADE)


БД:
-----------------
Tag:
- 1 | One
- 2 | Two
-----------------
Content:
- 1 | One
- 2 | One and Two
- 3 | Two
-----------------
TagContent:
- 1 | 1
- 1 | 2
- 2 | 2
- 2 | 3

Сам вопрос:
Как правильно выбрать из таблицы Content запись с точным набором связей?
То есть если я буду выбирать таким образом:
Content.objects.filter(tags__id=1)
Я получу контент 1 и 2, а мне нужно только 1.
Соответственно если tags__id=2 - получу контент 2 и 3, а надо 2, и т.д.
  • Вопрос задан
  • 27 просмотров
Пригласить эксперта
Ответы на вопрос 1
@Andriy_Kosmenyuk
Попробуй через метод get, точно не знаю, 2 года даже не вспоминал про джангу. А так то, в доках я думаю не сложно найти ответ на твой вопрос https://docs.djangoproject.com/en/3.2/topics/db/models/ . Тут не должно быть вопроса, ответ на который можно получить прочитав документацию технологии.
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы