【问题标题】:Can URLField() in django load a localhost path?django中的URLField()可以加载一个localhost路径吗?
【发布时间】:2019-12-07 14:06:38
【问题描述】:

我正在通过书 django2 学习 django,并且我正在构建一个社交媒体网站,用户可以在网站上分享图像。完成了一个功能,它使用书签工具(javascript)从其他网站加载图像然后上传到我的网站,但我想在此基础上再创建一个功能。我想让用户在本地主机上上传图像。

models.py

class Image(models.Model):
    user = models.ForeignKey(settings.AUTH_USER_MODEL, related_name='images_created', on_delete=models.CASCADE)
    title = models.CharField(max_length=200)
    slug = models.SlugField(max_length=200,blank=True)
    url = models.URLField()
    image = models.ImageField(upload_to='images/%Y/%m/%d')
    description = models.TextField(blank=True)
    created = models.DateField(auto_now_add=True,db_index=True)
    users_like = models.ManyToManyField(settings.AUTH_USER_MODEL, related_name='images_liked', blank=True)
    total_likes = models.PositiveIntegerField(db_index=True, default=0)

    def __str__(self):
        return self.title

    def save(self, *args, **kwargs):
        if not self.slug:
            self.slug = slugify(self.title)
        super(Image, self).save(*args, **kwargs)

    def get_absolute_url(self):
            return reverse('images:detail', args=[self.id, self.slug])

当我写这样的网址时"file://localhost/D:%5C1stu%5Cu=1422291456,3249037427&fm=173&app=25&f=JPEG.jpg" django 网站提醒我“(Hidden field url) Enter a valid URL." 谁能告诉我 django 中的 URLField() 可以加载 localhost 路径吗?如何?

【问题讨论】:

    标签: python django url django-models django-forms


    【解决方案1】:

    是的,你可以,但你得到错误的原因是 django URLfield 使用 url 验证器来验证 url,你可以在这个链接上检查它: https://docs.djangoproject.com/en/3.0/ref/validators/#django.core.validators.URLValidator

    现在,URL 验证器默认使用 ['http', 'https', 'ftp', 'ftps'] 如果不提​​供任何验证,这是您收到错误的原因,您使用“文件” .如果您必须使用 localhost url,请验证 url 字段。

    访问此链接: Django URLField with custom scheme

    希望对你有帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-03-13
      • 2023-02-03
      • 1970-01-01
      • 1970-01-01
      • 2011-05-29
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多