1

私が持っているとします:

models.py:

class Person(models.Model):
    user = models.OneToOneField(User)

    def get_album(self):
        return self.album_set.all()

class Album(models.Model):
    user = models.ForeignKey(Person)
    photo = models.ImageField(upload_to = 'blahblah')

api.py:

class PersonResource(ModelResource):

    class Meta:
        queryset = Person.objects.all()

class AlbumResource(ModelResource):

    class Meta:
        queryset = Album.objects.all()

PersonResourceその値が になるようにフィールドを脱水するにはどうすればよい.get_album()ですか?

私はこのように ToManyField を使用しようとしました:

albums = fields.ToManyField(readonly = True)

しかし、それはスローします:

Exception Type: TypeError
Exception Value:    
__init__() takes at least 3 arguments (2 given)
Exception Location: C:\PHOTOBLOG\photoblog\person\api.py in PersonResource, line 8
4

1 に答える 1

1

私は自分の質問に答えるつもりです、私たちが必要とするのはこれを追加することですPersonResource

albums = fields.ToManyField('myapp.api.AlbumResource', 'album_set', full = True)

カスタムメソッドを定義したり、脱水したりする必要はありません。

于 2012-11-17T04:46:43.453 に答える