使用 Django ORM 将数据插入 Table 行

Inserting data into a Table row using Django ORM

我目前正在学习 django orm 并使用这个结构

class Album(models.Model):
    artist = models.CharField(max_length=128, unique=True)
    title = models.CharField(max_length=128, unique=True)
    genre = models.CharField(max_length=128, unique=False)

    def __unicode__(self):
        return "Artist:"+self.artist + " Title:"+self.title

class Song(models.Model):
    album = models.ForeignKey(Album) #Link to primary key in Album
    title = models.CharField(max_length=128)
    def __unicode__(self):
        return self.title

我用这个进入了相册

a = Album(artist="Madonna",title="SomeTitle",genre="pop") a.save()

这就救了它。

现在如何插入歌曲 table? 我得到了这样的先前条目

a = Album.objects.get(artist__iexact="Madonna")

我认为我可以做的一种方法是

   >> s = Song(a,title="SongA")
   >> s.save() #Error TypeError: int() argument must be a string or a number, not 'Album'

如何保存歌曲

外键需要对象的pk。使用 a.id 而不是 a.

您可以通过

获取已保存对象的实例
  model_obj = Album.objects.get(artist ="Madona")

获取对象后,您可以创建 Song 对象并保存它。

  song_obj = Song(album=model_obj, title="SongA")
  song_obj.save()