Django Rest框架Url字段序列化程序
我有一个名为File的模型,其中包含一个名为“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
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框架方法