使用 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()
我目前正在学习 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()