Django Rest框架Url字段序列化程序

Django Rest框架Url字段序列化程序,django,python-3.x,django-rest-framework,Django,Python 3.x,Django Rest Framework,我有一个名为File的模型,其中包含一个名为“url”的字段 class File(models.Model): """ Generic File model """ filename = models.CharField(max_length=500) url = models.URLField() 现在,如果我传递此URL: https://s3.us-east-2.amazonaws.com/xyz/2018-09-25_17:39:16.80

我有一个名为File的模型,其中包含一个名为“url”的字段

class File(models.Model):
    """
    Generic File model
    """

    filename = models.CharField(max_length=500)
    url = models.URLField()
现在,如果我传递此URL:

 https://s3.us-east-2.amazonaws.com/xyz/2018-09-25_17:39:16.80 (1).pdf
注意(1)之前url中的空格。模型序列化程序提供一个错误,指出url无效


我是否需要自己编码url,将空格替换为“%20”

首先,如果可能,生成不带空格的文件。那将是一个更好的解决方案。

如果不可能,请将
URLField()
更改为
CharField()
,这将影响URL验证。但是,它可以用作有效的url。

如果仍要使用
URLField()
,并通过
验证程序添加它
参数

def custom_url_validator(value):
    # your validation

class File(models.Model):
    """
    Generic File model
    """

    filename = models.CharField(max_length=500)
    url = models.URLField(validators=[custom_url_validator,])
def自定义url验证程序(值):
#你的验证
类文件(models.Model):
"""
通用文件模型
"""
filename=models.CharField(最大长度=500)

url=models.URLField(validators=[custom\u url\u validator,])
您尝试过这样做吗?这似乎是一个非常容易测试的情况。是的,它正在检查这是否是一个正确的pythonicrest框架方法