Как взаимодействовать между моделями внутри 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)
Вернуться на верх