小编Sol*_*vik的帖子

django tastypie:使用中间模型获得m2m关系的额外值

我正在尝试使用Tastypie与ManyToMany关系使用中间模型(通过关键字)(https://docs.djangoproject.com/en/dev/topics/db/models/#extra-fields-on-many-to-many - 关系)

我正在使用这些模型:

class Point(models.Model):
    ...
    value = models.FloatField(_('Value'), null=True)
    rooms = models.ManyToManyField('rooms.Room', through='points.PointPosition')

class Room(models.Model):
    title = models.CharField(max_length=64)

class PointPosition(models.Model):
    point = models.ForeignKey('points.Point', verbose_name=_('Point'))
    room = models.ForeignKey('rooms.Room', verbose_name=_('Room'))
    x = models.IntegerField(_('Y'))
    y = models.IntegerField(_('X'))
Run Code Online (Sandbox Code Playgroud)

我已经能够获取多对多关系,但不能获取额外的字段.这是我的tastypie代码:

class PointResource(ModelResource):
    class Meta:
        queryset = Point.objects.select_related(
            depth=10
            ).prefetch_related('rooms').all()
        resource_name = 'point'
        allowed_methods = ['get']

    ...
    value = fields.FloatField()
    rooms = fields.ToManyField('rooms.api.RoomResource', 'rooms', full=True)

class RoomResource(ModelResource):
    class Meta:
        queryset = Room.objects.all()
        resource_name = …
Run Code Online (Sandbox Code Playgroud)

django many-to-many m2m tastypie

6
推荐指数
1
解决办法
3004
查看次数

标签 统计

django ×1

m2m ×1

many-to-many ×1

tastypie ×1