通过Django Rest中的ForeignKey访问另一个模型中的字段

git*_*t-e 2 python django django-rest-framework

我想在 django 1.8 中构建我的应用程序的 api 部分(使用 django rest 框架),并且我想通过foreignkey 访问另一个模型中的字段,但出现错误。

我的代码(models.py):

class Event(models.Model):
...
is_date_end_confirmed = models.BooleanField(default=True)
room = models.ForeignKey('events.Room', related_name='bookings')
room_description = models.CharField(max_length=255)
...
Run Code Online (Sandbox Code Playgroud)

序列化器.py

class BoxSerializer(serializers.ModelSerializer):
    room = serializers.PrimaryKeyRelatedField(many=True, read_only=True)

    class Meta:
        model = Evnet
        fields = ('id', 'date_start', 'room')
Run Code Online (Sandbox Code Playgroud)

我收到类型错误:'Room' object is not iterable

Eva*_*thi 5

使用序列化器,您可以通过执行以下操作来访问外键引用的另一个字段:

class BoxSerializer(serializers.ModelSerializer):
    field_in_room = serializers.ReadOnlyField(source='room.field_in_room')

    class Meta:
        model = Event
        ...
Run Code Online (Sandbox Code Playgroud)