【发布时间】:2020-02-04 17:59:59
【问题描述】:
我正在尝试制作一个游戏的 Django 模型,其中包含名称字段以及位于应用程序静态文件夹中的封面图像。
def game_covers_path():
return os.path.join(settings.STATIC_URL, 'some_app/games/')
class Game(models.Model):
name = models.CharField(max_length=100, primary_key=True)
cover = models.FilePathField(path=game_covers_path, null=True)
def __str__(self):
return self.name
我的文件夹结构如下:
.
├── db.sqlite3
├── my_app
│ ├── __init__.py
│ ├── asgi.py
│ ├── settings.py
│ ├── urls.py
│ └── wsgi.py
├── manage.py
└── some_app
├── __init__.py
├── admin.py
├── apps.py
├── migrations
├── models.py
├── static
│ └── some_app
│ ├── games
│ │ ├── Counterstrike:\ Global\ Offensive.jpg
├── templates
├── tests.py
├── urls.py
└── views.py
但是当我打开管理页面时,我收到以下错误:
FileNotFoundError at /admin/some_app/game/add/
[Errno 2] No such file or directory: '/static/some_app/games/'
如何正确引用数据库中应用的静态文件夹中的图像? FilePathField 是否在保存模型之前检查文件是否存在?因为我尝试添加随机值并保存了它,但在文档中写到你只能选择一个已经存在的文件......
【问题讨论】: