#django #python-2.7 #django-models
#django #python-2.7 #django-модели
Вопрос:
Я разрабатываю страницу, которая позволит мне отслеживать мои телешоу. Я отключил модели БД, но есть одна вещь, в которой я не уверен. Я хочу, чтобы, если пользователь смотрел эпизод, он мог просто пометить эпизод как просмотренный, но я не знаю, должен ли это быть ForeignKey / ManyToMany или что-то еще из-за того, что некоторые пользователи могут просматривать эпизод, другие нет.. :
У кого-нибудь есть какие-либо предложения по этой проблеме? Я подумываю о создании новой модели под названием episodeWatched, но дублировать модель просто для этого не очень эффективно..
Комментарии:
1. Ну, может ли один пользователь смотреть много эпизодов? Может ли эпизод смотреть много людей? Я не уверен, что именно здесь спрашивают
2. Да, пользователь может смотреть много эпизодов, и эпизод может смотреть много людей.
3. Звучит как отношение «многие ко многим». Я бы создал модель (назовите ее чем-то вроде UserEpisodeWatched или любым другим именем, которое вам нравится), и чтобы она содержала идентификатор пользователя и идентификатор эпизода. Не должно быть слишком дорогостоящим, потому что у вас есть только два столбца.
Ответ №1:
Используйте ManyToManyField в User
модели или модели вашего профиля пользователя, добавьте
episodes=models.ManyToManyField(Episode)
Добавляйте эпизоды, когда пользователь смотрит их с помощью
user.episodes.add(episode)
Найти все эпизоды, которые пользователь смотрел с
Episode.objects.filter(user=user)
Или сделайте обратное, т. Е. Добавьте users
поле в Episode
модель на основе того, что вы хотите сделать
В документах Django приведен аналогичный пример со статьями и публикациями — https://docs.djangoproject.com/en/1.10/topics/db/examples/many_to_many /
Документы Django также объясняют, как использовать другую модель для хранения дополнительных полей об отношениях, вы могли бы использовать ее, например, для хранения времени, когда пользователь смотрел эпизод.
https://docs.djangoproject.com/en/dev/topics/db/models/#extra-fields-on-many-to-many-relationships