Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Django DRF将图像添加到数据库中已存在的ForeignKey_Django_Django Rest Framework_Django Rest Viewsets - Fatal编程技术网

Django DRF将图像添加到数据库中已存在的ForeignKey

Django DRF将图像添加到数据库中已存在的ForeignKey,django,django-rest-framework,django-rest-viewsets,Django,Django Rest Framework,Django Rest Viewsets,我希望将图像添加到列表(ForeignKey)中,该列表将已经存在于我的数据库中 我有一个形象模特 class Image(models.Model): photo = models.ImageField(blank=True, upload_to=get_image_filename) listing = models.ForeignKey(Listing, on_delete=models.CASCADE) 图像序列化器 class ImageSerializer(seri

我希望将图像添加到列表(ForeignKey)中,该列表将已经存在于我的数据库中

我有一个形象模特

class Image(models.Model):
    photo = models.ImageField(blank=True, upload_to=get_image_filename)
    listing = models.ForeignKey(Listing, on_delete=models.CASCADE)
图像序列化器

class ImageSerializer(serializers.HyperlinkedModelSerializer):
    photo = serializers.ImageField(allow_empty_file=True)

    class Meta:
        model = Image
        fields = ('url', 'photo', 'listing', )

   def create(self, data):
    listing, __ = Listing.objects.get_or_create(listing=data["listing"])
    return Image(photo=data["photo"], listing=listing)
图像视图集

class ImageViewSet(viewsets.ModelViewSet):
    queryset = Image.objects.all()
    serializer_class = ImageSerializer
    detail_serializer_class = ImageDetailSerializer
    parser_classes = (FormParser, MultiPartParser)

    '''Show detailed Image view'''

    def get_serializer_class(self):
        if self.action == 'retrieve':
            if hasattr(self, 'detail_serializer_class'):
                return self.detail_serializer_class
        return super(ImageViewSet, self).get_serializer_class()
我已尝试在序列化程序中重写create方法,并在实际视图集中执行_create方法。但是不断地出错。任何方向正确的建议都会很棒]

位于/api/v1/images的字段错误/ 无法将关键字“listing”解析为字段。选择包括:地址、空调、便利设施、大约平方英尺、地下室、城市、社区、描述、外部房屋、车库、暖气、hoa、房屋级别、id、图像、纬度、标价、经度、地块大小、数字房间、数字浴池、数字浴室、外屋、财产视图、发布日期、屋顶类型、房间总数、学校、,样式房子、税收、税收地图、类型房子、未完工的面积、用户、用户id、水、年建成、zipcode、分区

编辑 已将创建方法更改为

def create(self, validated_data):
    listing_data = validated_data.pop('listing')
    image = Image.objects.create(**validated_data)
    image.listing =Listing.objects.get(photo=image, 
                                       listing_data=listing_data)
    return image
现在错误


save()得到了一个意外的关键字参数“force_insert”

请共享您的模型
Listing
列表模型有一大堆静态信息、卧室、浴室等。ImageModel是具有列表模型外键的模型。事实上,我相信你的问题在于在model
Listing
上调用
get\u或_create
,我编辑了这篇文章,现在遇到了一个新的错误。