You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Django的settings.py中配置函数生成Froala编辑器图片上传路径?

你目前的写法是直接将路径生成函数对象转为字符串拼接,得到的路径会携带函数对象的内存地址等无效内容,自然无法生成正确的存储路径。正确配置步骤如下:

1. 修正settings.py配置

先配置基础的媒体文件存储规则,Froala的全局上传路径留空即可,动态路径交给模型字段处理:

# settings.py
import os
from pathlib import Path

BASE_DIR = Path(__file__).resolve().parent.parent

# 媒体文件基础配置
MEDIA_ROOT = os.path.join(BASE_DIR, 'media/')
MEDIA_URL = '/media/'

# Froala 全局上传路径直接留空
FROALA_UPLOAD_PATH = ''

2. 在模型字段中绑定路径生成函数

你写的article_img_directory_path属于Django标准的upload_to回调函数,需要绑定到对应Froala字段的upload_to参数上,无需在settings中配置:

# articles/models.py
from django.db import models
from froala_editor.fields import FroalaField
from .utilities import article_img_directory_path

class Article(models.Model):
    title = models.CharField(max_length=255)
    # 给FroalaField指定upload_to参数
    content = FroalaField(
        upload_to=article_img_directory_path
    )
    # 其他字段...

3. 配置媒体文件访问路由(开发环境生效)

在项目根urls.py中添加媒体文件访问规则,确保上传的图片可以正常加载:

# 项目根目录urls.py
from django.conf import settings
from django.conf.urls.static import static

urlpatterns = [
    # 你的其他路由配置
] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)

配置完成后,上传的图片会自动按照media/images/文章别名/文件名的规则存储,完全符合需求。

内容的提问来源于stack exchange,提问作者ilsurealism

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 06:30:01