Python 将现有图像文件与Django模型关联

Python 将现有图像文件与Django模型关联,python,django,django-models,django-templates,django-admin,Python,Django,Django Models,Django Templates,Django Admin,我正在用Django创建一个基本的博客。我的一门课是给作者的。每一个都包含姓名、职位、传记等,我试图将现有的图像与每个作者联系起来,本质上是作为化身使用 FileField和ImageField不是我想要使用的,因为我已经在其他地方静态存储了图像——我只想在Django管理员中将每个图像的路径手动指定为URL(CharField/TextField,无论什么),并在我调用模板中的{{author.photo}时提供该图像。我也不一定要从类模型中获取图像路径,因为现有图像的结构和路径可能会改变。有

我正在用Django创建一个基本的博客。我的一门课是给作者的。每一个都包含姓名、职位、传记等,我试图将现有的图像与每个作者联系起来,本质上是作为化身使用


FileField和ImageField不是我想要使用的,因为我已经在其他地方静态存储了图像——我只想在Django管理员中将每个图像的路径手动指定为URL(CharField/TextField,无论什么),并在我调用模板中的{{author.photo}时提供该图像。我也不一定要从类模型中获取图像路径,因为现有图像的结构和路径可能会改变。有什么想法吗?

你必须把它保存在某个地方,以便映射用户和图像

所以我可以想出两个解决方案-

  • 有一个存储路径的字段。然后您可以通过模板访问它,类似这样-

  • 如果你说路径可能会改变,你可以为每个用户设置一个用户ID,并用该ID存储他的照片。然后你只需执行

  • 使用第二种解决方案,您还可以将路径作为代码中的变量,然后将其传递给模板,然后像这样访问图片-
    ,这不会强制您使用硬编码路径,一旦路径更改,您只需更改一次,而不是在所有模型实例/模板文件中更改一次

    我喜欢Thomas的第二种解决方案。不过你可以再往前走一步。您可以为author image创建一个文件字段,然后从模板执行类似于
    {%if not author.image%}{%else%}{%endif%}
    的操作。这样,您就可以从管理员、表单或其他任何地方上传新的或未来的图像。