Django - 从视图中将文件保存到静态目录

Django - Save file to static directory from view

我正在使用 Django 构建一个网站,托管在 PythonAnywhere 上。 其中一个网站页面是我用来构建内容的私有页面,这些内容随后将显示在 public 页面中。 我不想将私有页面中生成的内容保存到数据库中,然后从数据库中检索它,而是将其保存到静态文件中,在我的静态目录中(这是少量的 JSON 文件一次又一次地提供,所以我认为将它们作为静态文件提供是有意义的。

在定义我的私人页面的视图中,我有以下用于保存文件的代码:

json=request.POST.get('json')
name=request.POST.get('name')
file=open(settings.STATIC_ROOT+'/'+name+'.json','w')
file.write(json)
file.close()

注意我之前导入的设置:

from django.conf import settings

奇怪的是,这工作了一段时间,但后来就停止工作了。 我得到的错误是:

Exception Value: 'function' object has no attribute 'STATIC_ROOT'

我是不是做错了什么? 我在 PythonAnywhere 上的事实是否相关?该应用程序是否可能由无法写入我的静态目录的工作人员提供服务? 我能做些什么来解决这个问题?

正如 PythonAnywhere 工作人员指出的那样,该过程是合法的并且应该有效,因为该应用程序由工作人员 运行 作为我自己的用户 ID 提供,该用户 ID 具有写入静态目录的权限。 问题是由命名冲突产生的,因为其中一个视图也被命名为设置。 为了解决这个问题,我用

替换了导入语句
from django.conf import settings as django_settings
import os

和带有

的打开语句
file=open(os.path.join(django_settings.STATIC_ROOT, f'game_{name}.json'),'w')

进行这些替换后,似乎一切正常。