[Python] Aiuto con Django, interfaccia amministrativa e relazioni fra i modelli

Davide Olianas davide a davideolianas.com
Mer 8 Ago 2018 20:00:20 CEST


Il 08/08/2018 19:18, germano carella ha scritto:
> Salve a tutti ragazzi, come va?
>
> ...
>
> Naturalmente tutto è perfettibile, ho da studiare ancora, magari la 
> soluzione è banale e io mi sono solo perso, non lo so.
>

Ciao,
non puoi definire da una parte una relazione ManyToMany e dall'altra una 
ForeignKey (ovvero una OneToMany).

Devi togliere "album_title" da Song. È infatti sufficiente definire il 
ManyToManyField in Album.

Togli "self.tracknumber" in quanto non esiste come attributo.

In Album.__str__ specifica self.artist.name.



class Artist(models.Model):
  name = models.CharField(max_length=60)
  bio= models.TextField(blank=True)
  def publish(self):
   self.save()
  def __str__(self):
   return self.name

class Song(models.Model):
  tracktitle = models.CharField(max_length=250)
  def publish(self):
   self.save()
  def __str__(self):
   return self.tracktitle


class Album(models.Model):
  title = models.CharField(max_length=250)
  artist = models.ForeignKey(Artist,on_delete = models.CASCADE)
  notes = models.TextField(blank=True)
  tracks = models.ManyToManyField(Song)
  def publish(self):
   self.save()
  def __str__(self):
   return self.title+" di "+self.artist.name



Cordiali saluti,
Davide


Maggiori informazioni sulla lista Python