gpt4 book ai didi

django imagefield upload_to 根本不起作用

转载 作者:行者123 更新时间:2023-12-01 08:36:52 26 4
gpt4 key购买 nike

我编写了一个简单的 django 应用程序来测试 ImageField,但我遇到了问题,upload_to 似乎不起作用。下面是代码:

  1 from django.db import models
2
3 # Create your models here.
4 class TestImage(models.Model):
5 img = models.ImageField(max_length=256, upload_to='images')

在我的 settings.py 我有:
  2 from os.path import dirname, join, abspath
3 __dir__ = dirname(abspath(__file__))
50 MEDIA_ROOT = join(__dir__, 'static')
55 MEDIA_URL = '/media/'

然后我使用 manage.py 启动 python shell:
jchin@ubuntu:~/workspace/testimage$ ./manage.py shell
Python 2.7.1+ (r271:86832, Apr 11 2011, 18:05:24)
[GCC 4.5.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.
(InteractiveConsole)
>>> import settings
>>> from image_app.models import TestImage
>>> p = TestImage(img='test.jpg')
>>> p.save()
>>> p.img.name
'test.jpg'
>>> p.img.path
u'/home/jchin/workspace/testimage/static/test.jpg'
>>> p.img.url
'/media/test.jpg'

从结果中可以看出,django 完全忽略了我的 'upload_to' 参数。我不明白为什么。从文档中我应该期望 p.img.path 返回“/home/jchin/workspace/testimage/static/images/test.jpg”并在存储“images/test.jpg”的数据库中,对吗?但数据库只存储文件名:
mysql> select * from image_app_testimage;
+----+-----------+
| id | img |
+----+-----------+
| 1 | test.jpg |
+----+-----------+
1 rows in set (0.00 sec)

我检查了所有文档,但找不到我做错了什么。谁有想法?我正在使用 django 1.2.5,它应该支持upload_to。

请帮忙!
约翰

最佳答案

但是upload_to顾名思义,用于上传。您不是在上传,而是直接分配图像。只有当您创建 FileField对象 - 例如,通过从表单上传 - 使用了 upload_to。

关于django imagefield upload_to 根本不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8762622/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com