无法将图像上传到 Django 项目,获取 Form 对象没有属性“保存”

2024-01-05

我正在尝试通过模板输入的文件上传图像文件。我已遵循所有说明,但在附加文件并单击提交时出现此错误。

AttributeError: 'PicUpForm' object has no attribute 'save'

因此我的图像没有上传到指定的目录,并且记录没有插入到我的 sqlitedb 中

以下是我使用过的所有必需代码:

views.py

def add_image(request):
    form = PicUpForm()
    if request.method == "POST":
        form = PicUpForm(data=request.POST, files=request.FILES)
    if form.is_valid():
        form.save()
        return redirect("")
    else:
        return render(request, "sample.html", {"form": form})

forms.py

class PicUpForm(forms.Form):
    class Meta:
        model = PicUpClass
        fields = [model.picture]
    picture = forms.ImageField(label='File')

模型.py

def upload_to(instance, filename):
    now = timezone_now()
    base, ext = os.path.splitext(filename)
    ext = ext.lower()
    return f"C:/Users/Aayush/ev_manage/face_detector/static/img/{now:%Y/%m/%Y%m%d%H%M%S}{ext}"



class PicUpClass(models.Model):
    picture = models.ImageField(_("picture"), upload_to=upload_to, blank=True, null=True)

示例.html

{% block content %}
{% load static %}
    <form method="post" action="/picup" enctype="multipart/form-data">
        {% csrf_token %}
        {{ form }}
        <button type="submit">submit</button>
    </form>
{% endblock %}

urls.py

...
path('picup', views.add_image, name='picup'),

此外,我在根据需要创建模型后运行了 makemigrations 和 migrate 命令。请帮助我,因为我是Python新手,非常重要的是需要完成这个功能


Your PicUpForm is not a ModelForm,因此不会采取Meta完全考虑在内。请注意,字段应该是字符串列表,因此您应该将表单重写为:

class PicUpForm(forms.ModelForm):
    class Meta:
        model = PicUpClass
        fields = ['picture']

请注意,在您看来,对于redirect(..)你需要通过name的观点,所以:

def add_image(request):
    if request.method == 'POST':
        form = PicUpForm(data=request.POST, files=request.FILES)
        if form.is_valid():
            form.save()
            return redirect('name-of-view')
    else:
        form = PicUpForm()
    return render(request, 'sample.html', {'form': form})

这里需要更换name-of-view与视图的名称。

如果视图包含参数,您可以将其作为命名参数传递,例如,如果您的视图有一个picture_id参数(如果有其他参数,那么当然你应该更改参数的名称):

def add_image(request):
    if request.method == 'POST':
        form = PicUpForm(data=request.POST, files=request.FILES)
        if form.is_valid():
            picup = form.save()
            return redirect('name-of-view', picture_id=picup.pk)
    else:
        form = PicUpForm()
    return render(request, 'sample.html', {'form': form})
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

无法将图像上传到 Django 项目,获取 Form 对象没有属性“保存” 的相关文章

  • Python:json_normalize pandas 系列给出 TypeError

    我在 pandas 系列中有数万行像这样的 json 片段df json IDs lotId 1 Id 123456 date 2009 04 17 bidsCount 2 IDs lotId 2 Id 123456 date 2009 0
  • 将整数系列转换为交替(双元)二进制系列

    我不知道如何最好地表达这个问题 因为在这里谷歌搜索和搜索总是让我找到更复杂的东西 我很确定这是基本的东西 但对于我的生活来说 我找不到一个好的方法来做到这一点下列 给定一个整数序列 比如说 for x in range 0 36 我想将这些
  • Python3将模块从文件夹导入到另一个文件夹

    我的结构字典是 mainFolder folder1 init py file1 py file2 py folder2 init py file3 py file4 py setup py init py 我需要将 file4 py 从f
  • Python 内置对象的 __enter__() 和 __exit__() 在哪里定义?

    我读到每次使用 with 时都会调用该对象的 enter 和 exit 方法 我知道对于用户定义的对象 您可以自己定义这些方法 但我不明白这对于 打开 等内置对象 函数甚至测试用例是如何工作的 这段代码按预期工作 我假设它使用 exit 关
  • 使用 Tkinter 打开网页

    因此 我的应用程序需要能够打开其中的单个网页 并且它必须来自互联网并且未保存 特别是我想使用 Tkinter GUI 工具包 因为它是我最熟悉的工具包 最重要的是 我希望能够在窗口中生成事件 例如单击鼠标 但无需实际使用鼠标 有什么好的方法
  • Python speedtest.net,或等效的[关闭]

    Closed 这个问题是无关 help closed questions 目前不接受答案 是否有一个 Python 库可以实现 SpeedTest net 测试或等效的互联网连接速度测试 GitHub上有一个项目叫速度检查 https gi
  • 会话数据库表清理

    该表是否需要清除或者由 Django 自动处理 Django 不提供自动清除功能 然而 有一个方便的命令可以帮助您手动完成此操作 Django 文档 清除会话存储 https docs djangoproject com en dev to
  • Django User 模型,添加功能

    我想向 Django 的默认用户模型添加一个新函数 用于检索模型类型的相关列表 这样的 Foo 模型 class Foo models Model owner models ForeignKey User related name owne
  • BlackBerry SQLite:将一个 SQLite 数据库连接到另一个

    我正在尝试使用 SQLite 将一个 SQLite 数据库附加到 BlackBerry 上的另一个数据库附加数据库 http www sqlite org lang attach html命令 Database d1 d2 Statemen
  • Python在没有pandas的情况下解码excel表

    我正在尝试在 python 中读取 excel 文件而不使用pandas or xlrd 我一直在尝试将结果转换为bytes to utf 8没有任何成功 xls 文件中的数据 colA colB colC spc 1D0 20190705
  • pandas groupby 操作缺少数据

    在 pandas 数据框中 我有一列如下所示 0 M 1 E 2 L 3 M 1 4 M 2 5 M 3 6 E 1 7 E 2 8 E 3 9 E 4 10 L 1 11 L 2 12 M 1 a 13 M 1 b 14 M 1 c 15
  • Snakemake:将多个输入用于具有多个子组的一个输出的规则

    我有一个工作管道 用于下载 比对和对公共测序数据执行变体调用 问题是它目前只能在每个样本的基础上工作 i e作为每个单独测序实验的样本 如果我想对一组实验 例如样本的生物和 或技术复制 执行变体调用 则它不起作用 我试图解决它 但我无法让它
  • 如何通过selenium中弹出的身份验证?

    我正在尝试使用带有 Selenium 的 Python 脚本加载需要身份验证的网页 options webdriver ChromeOptions prefs download default directory r download de
  • 非常大的字段会对 MySQL 数据库产生负面影响吗?

    我目前正在使用 Django 构建一个网站 并希望托管用户生物样式页面 该页面可能长达几 KB 这些字段不一定需要搜索 但在查找用户名时确实需要提供 将这些数据存储在数据库中会产生负面影响吗 如果我使用带有数据库链接的静态文本文件 我的服务
  • “库例程调用不按顺序” sqlite3_prepare_v2(CREATE TABLE)

    你知道为什么我打电话时会收到 Library Routine Called Out Of Sequence 吗 sqlite3 prepare v2 CREATE TABLE 在空数据库上 我创建一个空数据库 然后打开它 后来我将所有必须写
  • Django - 在长时间处理期间显示加载消息

    我怎样才能显示请稍等从 django 视图加载消息 我有一个 Django 视图 需要花费大量时间对大型数据集执行计算 当进程加载时 我想向用户呈现一条反馈消息 例如 旋转加载动画 gif 或类似消息 在尝试了布兰登和穆拉特提出的两种不同方
  • 如何从邻接表高效创建稀疏邻接矩阵?

    我正在与last fm http labrosa ee columbia edu millionsong lastfm数据集来自百万歌曲数据集 http labrosa ee columbia edu millionsong 数据以一组 j
  • 用 pandas DataFrame 替换 mysql 数据库表中的行

    Python 版本 2 7 6 熊猫版本 0 17 1 MySQLdb 版本 1 2 5 在我的数据库中 PRODUCT 我有一张桌子 XML FEED 表 XML FEED 很大 数百万条记录 我有一个 pandas DataFrame
  • PyQt5按钮lambda变量变成布尔值[重复]

    这个问题在这里已经有答案了 当我运行下面的代码时 它显示如下 为什么 x 不是 x 而是变成布尔值 这种情况仅发生在传递到用 lambda 调用的函数中的第一个参数上 错误的 y home me model some file from P
  • 使用 python 将 CSV 文件上传到 Microsoft Azure 存储帐户

    我正在尝试上传一个 csv使用 python 将文件写入 Microsoft Azure 存储帐户 我已经发现C sharp https blogs msdn microsoft com jmstall 2012 08 03 convert

随机推荐

  • TensorFlow 2.0:如何更新张量?

    在 TensorFlow 1 x 中 要更新张量 我会使用tf scatter update 仅更新张量的相关部分 我们如何在 TF 2 0 中做同样的事情 您可以使用tf tensor scatter nd update https ww
  • 在文本中查找相关单词的算法

    我想要一个单词 例如 Apple 并处理一个文本 或者可能更多 我想提出相关术语 例如 处理 Apple 的文档并发现 iPod iPhone Mac 是与 苹果 相关的术语 关于如何解决这个问题有什么想法吗 作为起点 您的问题涉及文本挖掘
  • 如何在C中打印方阵的所有方子矩阵?

    请帮我用C编程语言找到并打印从大到小方阵的所有方阵子矩阵 我写的代码运行错误 int main int mtrx size 8 int mat 8 8 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
  • 创建触发器以插入到另一个表中

    我在执行下面的触发器时遇到一些问题 CREATE OR REPLACE TRIGGER AFTERINSERTCREATEBILL AFTER INSERT ON READING FOR EACH ROW DECLARE varReadNo
  • 使用 JWT 和 OpenID Connect 在微服务中进行客户端身份验证

    我对微服务架构中的身份验证有一些疑问 我现在有一个整体应用程序 我的目标是将应用程序拆分为小型微服务 我最大的问题是身份验证 目前 阅读大量文档后 似乎最好的解决方案是使用 OpenID Connect 对用户进行身份验证以检索 JWT 该
  • 通过 JSch 的 SFTP 抛出错误 4:失败

    我在尝试通过 SFTP 将文件从 Windows 传输到 Unix 服务器时遇到了一个特殊问题 错误 堆栈跟踪 是 4 Failure at com jcraft jsch ChannelSftp throwStatusError Chan
  • 为什么每个请求都会执行passport.serializeUser?

    我使用 Passport js Passport facebook token 通过 Strongloop 的环回框架来保护我的 API 构建 为什么护照反序列化成功后还要再次序列化反序列化的用户 每个请求都会调用 Passport aut
  • mongodb数据目录权限

    早些时候 我将所有 mongodb 数据文件存储在 var lib mongodb 目录中 etc mongodb conf 中的 dbpath 条目是 var lib mongodb 现在我想将数据目录更改为 vol db 所以我创建了目
  • 非泛型类是否可以包含 .NET(C# 或 VB.NET)中的泛型列表?

    我希望有人可以帮助我理解这样的事情是否可能 如何可能 在这种情况下 假设您正在尝试对电子表格或数据库中的网格进行建模 但每列中的数据只能是一种数据类型 示例 第 1 列只能包含整数 我创建了一个通用类来模拟列结构 如下所示 public c
  • 为什么“C”中的索引从零开始?

    为什么 C 中数组的索引从 0 开始 而不是从 1 开始 在C中 数组的名称本质上是一个指针 但请看评论 对内存位置的引用 等等表达式array n 指的是一个内存位置n远离起始元素的元素 这意味着索引被用作偏移量 数组的第一个元素恰好包含
  • 在不使用会话上下文的情况下在 Web 应用程序中保留值

    我有一个 变量 用户可以在 JSP Struts 应用程序中修改该变量 该变量必须在整个 Web 应用程序的会话中保留 他们可能会离开设置和查看该变量的页面 仍然留在应用程序中 并且当他们回来时 他们上次为该变量设置的值应该仍然存在 显而易
  • iOS7-UItableViewCell 以 Grouped 样式显示在表格视图中

    在 iOS7 中 分组表视图的单元格显示为表视图的全宽 更像是普通表视图样式 但在模拟器的设置应用程序中 分组样式看起来不同 对于实现这种类型的单元有什么帮助吗 该解决方案适用于 iOS7 以及以前版本的 iOS 创建自定义 UITable
  • 是否有正则表达式可以返回相同字符的重复匹配?

    使用 NET 正则表达式 假设我有以下文本 哒哒哒哒哒哒 我想测试任何字符的重复次数是否超过 2 次 正则表达式不应返回包含双字母 例如单词 的文本的匹配项 look UPDATE 不要假设输入文本仅包含字母 d 的重复 我想要任何重复的字
  • 使用 dplyr 和 lazyeval 进行编程

    我在以保留非标准评估的方式重构 dplyr 时遇到问题 假设我想创建一个始终选择和重命名的函数 library lazyeval library dplyr df lt data frame a c 1 2 3 f c 4 5 6 lm c
  • if 语句过多

    我有一些话题要讨论 我有一段代码 24ifs elifs Operation是我自己的类 代表的功能类似于Enum https docs python org 3 library enum html 这是代码片段 if operation
  • Android:调用 onStop() 时“java.lang.IllegalArgumentException:服务未注册”

    我有一个需要长时间运行的应用程序Service 我需要确保当用户离开时Activity the Service stops 因此我实施了onStop 关闭服务 这是代码 Override protected void onStop supe
  • ButterKnife 中 R2.java 中的最后一个字段

    这是一个扩展Android 为什么我们需要使用 R2 而不是 R 和 butterknife https stackoverflow com questions 42362062 android why do we need to use
  • C++ 二进制转十进制

    所以我知道有一种方法可以使用 bitset 库将 Dec 转换为二进制 但是您可以使用 bitset 库将二进制转换为十进制吗 或者你必须手动完成 bitset lt 8 gt bin x number 可以 但它应该是一个字符串 std
  • 在线程中创建的 DatabaseWrapper 对象只能在同一线程中使用。”当尝试使用 celery 插入数据库时

    我正在使用 celery 从 csv 读取数据并将其上传到 Postgres celery 任务正在工作 我认为 但是 django 抛出错误 我正在获取一个文件 将其转换为 pandas 删除 2 列 然后转换为 numpy 并传递给 c
  • 无法将图像上传到 Django 项目,获取 Form 对象没有属性“保存”

    我正在尝试通过模板输入的文件上传图像文件 我已遵循所有说明 但在附加文件并单击提交时出现此错误 AttributeError PicUpForm object has no attribute save 因此我的图像没有上传到指定的目录 并