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
Python 3.x 在Django FileField中,如何设置还包含随机url的file.name?_Python 3.x_Django_Django Models_Django Rest Framework_Django Views - Fatal编程技术网

Python 3.x 在Django FileField中,如何设置还包含随机url的file.name?

Python 3.x 在Django FileField中,如何设置还包含随机url的file.name?,python-3.x,django,django-models,django-rest-framework,django-views,Python 3.x,Django,Django Models,Django Rest Framework,Django Views,编辑 我正在尝试修改上传文件的名称,以便在其中包含一些url。在我的例子中,它是自定义的“file_url”变量。但是,当前结果为:“filename”,但预期结果应为: 以下是my View.py: class CreateImage(CreateAPIView): permission_classes = (IsAuthenticated,) model = models.Image serializer_class = serializers.ImageSerial

编辑 我正在尝试修改上传文件的名称,以便在其中包含一些url。在我的例子中,它是自定义的“file_url”变量。但是,当前结果为:“filename”,但预期结果应为:

以下是my View.py:

class CreateImage(CreateAPIView):
    permission_classes = (IsAuthenticated,)
    model = models.Image
    serializer_class = serializers.ImageSerializer

    def get_serializer(self, container, *args, **kwargs):
        serializer_class = self.get_serializer_class()
        kwargs["context"] = self.get_serializer_context()
        old_filename = self.request.FILES['image'].name
        if self.request.FILES:
            if container == 'products':
                data = self.request.data.copy()
                product_name = data["product_name"]
                file_url = f"{settings.MEDIA_DOMAIN}{container}/"
                new_filename = get_product_new_filename(old_filename, product_name)

                data['image'].name = file_url + new_filename
                kwargs["data"] = data
                return serializer_class(*args, **kwargs)
和简单的参考模型:

class Image(models.Model):
    image = models.FileField()

    def __str__(self):
        return self.image.name
您知道如何在文件名中包含给定的url吗?[编辑]问题似乎带有“/”符号。是否可以将其包含在名称中?

解决方法是创建额外的字段,比如image_url as CharField,并将其保存在那里,但也许有一种方法可以避免重复表输入


提前谢谢

有那个url的原因是什么?这是一个很好的观点-原因是什么:)。我不能回答同样的问题,我决定插入额外的字段来存储正确的链接。谢谢你的评论!请将您的解决方案作为答案写下来,以便其他人看到