我正在使用Django REST框架,并试图创建一个通用关系。当我试图查看设备模型时,它抛出错误
<django.contrib.contenttypes.fields.GenericRelatedObjectManager object at 0x2b7e6d0> is not JSON serializable
文件相当清楚地指出反向泛型关系应该有效,那么我做错了什么?在
我的模型:
^{pr2}$序列化程序:
class DeviceModelSerializer(serializers.ModelSerializer):
generic_model = serializers.PrimaryKeyRelatedField(
queryset = models.GenericDevice.objects.all()
)
class Meta:
model = models.SSDDeviceModel
fields = (...other fields..., 'generic_model')
class DeviceModelRelatedField(serializers.PrimaryKeyRelatedField):
def to_representation(self, value):
if isinstance(value, models.DeviceModel):
serializer = DeviceModelSerializer(value)
else:
raise Exception('Unexpected device model')
return serializer.data
class GenericDeviceSerializer(serializers.ModelSerializer):
device_model = DeviceModelRelatedField(queryset=models.DeviceModel.objects.all())
class Meta:
model = models.GenericDevice
fields = ('device_model')
我刚才也遇到了这个问题。我想我用下面的代码解决了这个问题,松散地模仿了Django REST docs - Generic Relationships。在
)希望能有所帮助。我是Django新手。如果我能让它更优雅的话,我会更新这个)。在
我的模型:
我的序列化程序:
^{pr2}$我的管理员:
相关问题 更多 >
编程相关推荐