【问题标题】:How to choose (not upload) file from server in admin (Django)如何在管理员(Django)中从服务器选择(不上传)文件
【发布时间】:2020-12-26 18:27:34
【问题描述】:

我需要在每个帖子中显示图标(代表帖子内文档的类型)。每年有数百个帖子。大约有十几种类型的文档,因此我需要那么多图标。问题是,如果我使用models.ImageField,它会在每次创建帖子时上传一张新图片,我很快就会得到一堆相同的图标。 所以我想知道如何实现以下逻辑:

  1. preview_icon -> 从服务器中选择

  2. upload_icon -> 如果服务器上不存在想要的图标,则通过 preview_icon 字段从服务器上传并选择它。

我最初的想法是制作一个新模型:

 class PostIcon(models.Model):
        post = models.ForeignKey(Post, on_delete=models.CASCADE, related_name="icons")
        post_icon = models.ImageField(upload_to=f"path")

所以你可以连接图标来发布。但我想知道是否有办法实现我提到的第一个逻辑,因为它会更整洁。谢谢。

【问题讨论】:

    标签: django upload


    【解决方案1】:

    我已经这样做了,它工作正常。但在这种情况下,我希望看到您可以浏览服务器以获取图像而不是通过icon_name 选择它的解决方案。如果有人遇到类似问题,希望这会有所帮助。

    class PostIcon(models.Model):
        icon_name = models.CharField(max_length=100, unique=True)
        preview_icon = models.ImageField(default="path")
    
        def __str__(self):
            return str(self.icon_name)
    
    
    class Post(models.Model):
        preview_icon = models.ForeignKey(PostIcon, on_delete=models.SET_DEFAULT, default=None, related_name="post_icon")
        ...
    

    【讨论】:

      猜你喜欢
      • 2016-02-15
      • 2019-08-27
      • 2021-07-27
      • 2014-04-16
      • 1970-01-01
      • 2019-11-23
      • 2020-02-23
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多