Представьте, что у меня есть 2 модели Song and Person:
class Person(models.Model):
name = models.CharField(max_length=128)
def __str__(self):
return self.name
class Song(models.Model):
name = models.CharField(max_length=128)
def __str__(self):
return self.name
И я хочу создать поле внутри модели Person для хранения списка дат, которые этот человек слушает музыку и какие песни он слушает.
2019-10-2 -> (Song 3, Song 25, Song 50)
2019-10-3 -> (Song 4, Song 5, Song 12)
2019-10-7 -> (Song 77, Song 22, Song 11)
Поле ManyToMany, кажется, работает для связи с одним или несколькими экземплярами другой модели, но, по-видимому, не полезно для этого случая.
Есть ли поле какого-либо типая мог бы использовать? Или есть какой-то другой способ хранения всей этой информации?
Единственный другой способ, который я могу придумать, - это создать такую модель и создать таблицу со всеми песнями, которые все слушали, связать их с каждым пользователем и добавить дату:
class Song(models.Model):
person = models.OneToOneField(Person)
date = models.DateField()
songs = models.ManyToManyField(Song)
Я довольно новичок в базах данных и django, так что я не совсем уверен, как правильно хранить информацию такого рода. Под профилем человека или в другой таблице?
Спасибо!