python - Django rest 删除请求错误“'file' 属性没有与之关联的文件。”
问题描述
我正在为 API 使用 Django 休息框架。我试图使文件字段可选。当我创建它时instance
,它可以正常工作,即我可以在没有文件的情况下上传我的数据。但是当我试图删除它时,它显示以下错误,
The 'file' attribute has no file associated with it.
在models.py
文件中,我写如下,
file = models.FileField(upload_to="%Y/%m/%d", null=True, blank=True)
在serializer.py
文件中,我写如下,
class DataSerializer(serializers.ModelSerializer):
file = serializers.FileField(
required=False, allow_empty_file=True, allow_null=True)
class Meta:
model = DataIndex
fields = '__all__'
谁能帮我解决这个错误?提前致谢。
解决方案
我解决了这个问题。实际上,问题出在我的signals.py
文件中。当我检查时,我发现post_delete
信号试图获取文件位置如下,
file = instance.file.path
我写如下并解决了问题,
file = instance.file.path if instance.file else None
推荐阅读
- mysql - 如果它们大于某个值,Mysql 会减少单行的值
- javascript - 通过常量为交互元素分配角色
- javascript - 历史推送状态重定向,而不是仅仅将新状态推送到浏览器历史
- hibernate - 在spring mvc中处理连续请求
- java - 收到 javax.crypto.IllegalBlockSizeException 错误:使用填充密码解密时输入长度必须是 8 的倍数
- pdf - 在 WebView 中渲染 PDF 和 DOC 文件 - 两者都可以作为 URL 或文件 - Android
- visual-studio-2017 - VS Professional 2017 - 15.9.11 - 与安装相关的问题
- android - 如何在 android.bp 中编写条件 ifeq ($(filter-out tt_%,$(TARGET_PRODUCT)),)
- javascript - 使用构造函数比较对象内部的值
- symfony - 在教义中使用间隔时出错