Django Rest Framework:'image'属性没有与之关联的文件

时间:2015-06-07 17:16:34

标签: django django-rest-framework django-rest-framework-gis

我正在使用Django Rest Framework为前端创建REST端点。 我有一个模型,可以上传3张图片( foto_1 foto_2 foto_3 )。

class Ocorrencia(TimeStampedModel):

(...)

foto_1 = models.ImageField("Foto 1", upload_to="ocorrencias/", blank=True)
foto_2 = models.ImageField("Foto 2", upload_to="ocorrencias/", blank=True)
foto_3 = models.ImageField("Foto 3", upload_to="ocorrencias/", blank=True)

我的序列化器如下:

class OcorrenciaSerializer(GeoFeatureModelSerializer):

(...)

foto_1 = serializers.ImageField(allow_empty_file=True, allow_null=True, required=False, use_url=True)
foto_2 = serializers.ImageField(allow_empty_file=True, allow_null=True, required=False, use_url=True)
foto_3 = serializers.ImageField(allow_empty_file=True, allow_null=True, required=False, use_url=True)

class Meta:
    model = models.Ocorrencia
    geo_field = 'geometria'
    fields = ('foto_1', 'foto_2', 'foto_3')

例如,如果foto_3在数据库中没有关联的文件URL(当它为空时保存为空字符串),那么当检索关联的端点时,我会收到以下错误:

例外值:'foto_3'属性没有与之关联的文件。

在为图像字段定义序列化程序时,使用 allow_empty_file = True allow_null = True required = False 似乎没有做任何事情。

更新1

我发现这与使用GeoFeatureModelSerializer有关,这是docs的一部分。我必须在那条路上寻求解决方案。如果我碰巧使用DRF的默认序列化程序类,我没有问题。这个问题让我几乎疯了。如果我找到使用GeoFeatureModelSerializer的解决方案,我会在这里发布。

更新2

将Django-Rest-Framework-Gis更新为最新版本并修复它。谢谢大家的意见和建议。

0 个答案:

没有答案