Как получить доступ к идентификатору первичного класса в иностранном классе в Django? - PullRequest
0 голосов
/ 04 декабря 2018

У меня есть 2 модельных класса (Альбом и Песни), где Песня d иностранного класса.Я хочу получить доступ к идентификатору класса Album в классе Song.Как я могу это сделать ??

class Album(models.Model):
   artist=models.CharField(max_length=250)
   title=models.CharField(max_length=500)

class Song(models.Model):
   album=models.ForeignKey(Album,on_delete=models.CASCADE)
   song_title=models.CharField(max_length=250)

   def get_absolute_url(self):
   //I need to access the Album ID from here..so that i can 
   redirect myself to the Album's url after adding a new song

Ответы [ 2 ]

0 голосов
/ 05 декабря 2018

Над верным кодом.Но вам не нужно дополнительное поле id в обоих классах.Вот почему Django уже создал этот тип поля в БД.

class Album(models.Model):
    album_name = models.CharField(max_length=100)
    def __str__(self):
        return self.album_name
class Song(models.Model):
    song_name = models.CharField(max_length=100)
    album = models.ForeignKey(Album, related_name='songs', on_delete='CASCADE')
    def __str__(self):
        return self.song_name
0 голосов
/ 04 декабря 2018

Добро пожаловать в StackOverflow!Итак, я предполагаю, что ваш код выглядит примерно так:

class Album(models.Model):
    id = models.IntegerField()
    album_name = models.CharField(max_length=100)

class Song(models.Model):
    id = models.IntegerField()
    song_name = models.CharField(max_length=100)
    album = models.ForeignKey(Album, related_name='songs')

Допустим, вы получили запись песни, выполнив song = Song.objects.get(id=x).Тогда вы получите идентификатор альбома следующим образом: song.album.id

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...