0at*_*man 2 django orm jquery json playlist
简单的django orm问题:
我有一个非常经典的播放列表和曲目模型示例:
class Track(models.Model):
name = models.CharField(max_length = 50)
mp3 = models.FileField(upload_to="track/")
class Playlist(models.Model):
name = models.CharField(max_length = 50)
class PlaylistTrack(models.Model):
playlist = models.ForeignKey('track.Playlist')
track = models.ForeignKey('track.Track')
position = models.IntegerField() #Here's the crux of the problem
Run Code Online (Sandbox Code Playgroud)
这是制作可订购播放列表的最佳方式吗?
我对此表示怀疑,但如果是这样,我如何获得订购QuerySet?(我将序列化为json,所以a QuerySet是首选,但如果你有一个不同的,简单的方式制作json,我很乐意听到它!)
这是我到目前为止所拥有的:
playlist = Track.objects.filter(playlisttrack__playlist__exact=1)
Run Code Online (Sandbox Code Playgroud)
但根据PlaylistTrack.position现场情况,这并没有保留排序......
谢谢!
如果你注意到你的PlaylistTrack模型只不过是一个多2对多的中间表,那么事情会变得更加明显(检查一下):
class Playlist(models.Model):
name = models.CharField(max_length = 50)
tracks = models.ManyToManyField('Track', through='PlaylistTrack')
class PlaylistTrack(models.Model):
playlist = models.ForeignKey('track.Playlist')
track = models.ForeignKey('track.Track')
position = models.IntegerField() #Here's the crux of the problem
class Meta:
ordering = ['position']
Run Code Online (Sandbox Code Playgroud)
现在你可以这样做:
my_playlist.tracks.all()
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1216 次 |
| 最近记录: |