0

私はdjangoでアルバムアプリを構築しています.2つのdjangoモデルがあります

class Album(models.Model):
    name = models.CharField(max_length=100)
    family = models.ForeignKey(FamilyProfile)
    created_by = models.ForeignKey(User)
    created_date = models.DateField(default=datetime.datetime.now())

class Image(models.Model):
    album = models.ForeignKey(Album)
    name = models.CharField(max_length=100,null=True,blank=True)
    src = models.ImageField(upload_to=MEDIA_ROOT)
    upload_by = models.ForeignKey(User)
    upload_time = models.DateTimeField(default=datetime.datetime.now())

RESFull APIにtastypirを使用し、

バックボーンには2つのコレクションがあります

   album.albumCollection = Backbone.Tastypie.Collection.extend({
        url:'/album/v1/album/',
        model:album.albumModel,
   })


   image.imageCollection = Backbone.Tastypie.Collection.extend({
       url:'/album/v1/image/',
       model:image.imageModel,
   })

およびバックボーン ルータ

album.router = Backbone.Router.extend({
    routes:{
        '':'album',
        'test/:id':'openAlbum',
    },

    album:function(){
        this.albums = new album.albumCollection()
        this.albumsView = new album.albumCollectionView({model:this.albums})
        this.albums.fetch({reset: true})
    },
    openAlbum:function(id){
        this.images = new image.imageCollection()
        this.imagesView = new image.imageCollectionView({model:this.albums})
        this.images.fetch({reset: true})
    }
})

new album.router();
Backbone.history.start();

アルバムをレンダリングできますが、アルバムを開こうとすると、ご覧のとおり、アルバムの ID で画像コレクションを取得する必要がありますが、imageCollection.url は静的です。

バックボーンとタスティパイを含むアルバム内の画像を取得するにはどうすればよいですか?

4

1 に答える 1

0

Image Tastypie リソースのアルバム フィールドでフィルタリングを設定し、アルバムで画像をフィルタリングするように URL を変更します。

openAlbum:function(id){
    this.images = new image.imageCollection()
    this.images.url = this.images.url + "?album=" + id;
    this.imagesView = new image.imageCollectionView({model:this.images})
    this.images.fetch({reset: true})
}
于 2013-05-22T07:19:55.077 に答える