【发布时间】:2022-01-17 20:57:29
【问题描述】:
我遇到了一个奇怪的问题。
所以我有一个应用程序,我的模型在我添加 Filefield 之前完全没问题。
现在我收到一个 CSRF-Verification failed 错误,即使我不尝试上传文件并将其留空,它也会给我以下错误。
这是我的模型:
class Municipality(models.Model):
activate_date = models.DateField()
deactivate_date = models.DateField()
code = models.CharField(max_length=200)
name = models.CharField(max_length=200)
alt_name = models.CharField(max_length=200, blank=True, null=True)
logo = models.FileField( upload_to='Logo/muni', max_length=200, blank=True, null=True)
我的应用程序是使用 AWS Lambda、S3 和其他所需服务在 AWS 上设置的
我的 S3 存储桶(我的文件应该上传到的位置)在我的 settings.py 文件中定义,其中 env 变量已在 AWS Lambda 环境变量中定义
AWS_STORAGE_BUCKET_NAME = env('AWS_STORAGE_BUCKET_NAME', default=None)
我不明白为什么即使我不包含文件,我的模型也不会保存。
奇怪的是,当我在本地工作时,它不会给我这个错误。 我可以在上传或不上传文件的情况下保存这个模型。
其他未定义 Filefield 或 Imagefield 的模型在本地和在线都可以完美运行。
我在尝试添加文件字段或图像字段时收到此错误的任何原因?
注意:我正在使用 DjangoAdmin 界面而不是自定义表单,所以如果我是对的,我认为 django 会自动添加 csrf 令牌?
编辑:我注意到我的请求标头 cookie 中的 csrf 令牌与请求负载中的不同,这正常吗?
编辑:我将我的 django 项目更新到 v4.0,现在错误只显示 CSRF token missing
编辑:我发现当我在管理员中保存一个包含图像/文件字段的模型时,我的 POST 数据不会随我的请求一起发送。因此,我得到一个错误,CSRF 令牌丢失是有道理的。
【问题讨论】:
标签: django aws-serverless