Как взаимодействовать между моделями внутри model.py?
Есть кое-что, что я хочу сделать, но я не знаю, как это сделать. В данном случае у меня есть 2 модели в проекте с именами 1.Music 2.Artist
1. Music Модель сохраняет сведения о музыке, такие как название музыки, имя исполнителя, жанр и т.д..
2. Artist Модель имеет только одну задачу - сохранение имен исполнителей.
Я хочу написать код для своих моделей, чтобы при добавлении новой музыки в административной панели, Модель музыки проверяла Модель артиста на существование имен артистов и если имя артиста существовало => просто добавляла детали музыки, а если имя артиста не существовало, то добавляла нового артиста в Модель артиста.
Вот мой пример кода model.py:
class Artist(models.Model):
name = models.CharField(max_length=100)
class Music(models.Model):
name = models.CharField(max_length=100)
artist = models.CharField(max_length=100)
genre = models.CharField(max_length=100)
Вы можете использовать ForeignKey
в поле artist вместо CharField
. Таким образом, ваша модель Music
будет выглядеть так:
class Music(models.Model):
name = models.CharField(max_length=100)
artist = models.ForeignKey(Artist, null=True, on_delete=models.SET_NULL)
genre = models.CharField(max_length=100)
Когда вы хотите получить музыку по конкретному исполнителю в файле views.py, используйте filter():
musics = Music.objects.filter(artist=1)