- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我正在尝试为需要 django.db.models.ImageField
的测试用例设置数据。我正在尝试使用来自 factory-boy 的 factory.django.ImageField
,但出现错误 AttributeError: 'ImageField' object has no attribute '_committed'
简化的 Django 对象:
class GalleryImage(models.Model):
image = models.ImageField(upload_to='uploads/products')
工厂类:
class GalleryImageFactory(factory.DjangoModelFactory):
class Meta:
model = models.GalleryImage
测试中的用法:
img = factory.django.ImageField(filename='test.jpg')
GalleryImageFactory.create(image=img)
这将给我以下错误,指向创建 GalleryImageFactory
的行。
AttributeError: 'ImageField' object has no attribute '_committed'
我正在运行 python (2.7.6)、factory-boy (2.4.1) 和 Django (1.6.8)
完整堆栈跟踪:
Traceback (most recent call last):
File "/home/vagrant/sportamore/tests/sportamor_tests/catalog/test_pricefeed_google.py", line 80, in setUp
image=img)
File "/home/vagrant/sportamore/venv/local/lib/python2.7/site-packages/factory/base.py", line 585, in create
return cls._generate(True, attrs)
File "/home/vagrant/sportamore/venv/local/lib/python2.7/site-packages/factory/base.py", line 510, in _generate
obj = cls._prepare(create, **attrs)
File "/home/vagrant/sportamore/venv/local/lib/python2.7/site-packages/factory/base.py", line 485, in _prepare
return cls._create(model_class, *args, **kwargs)
File "/home/vagrant/sportamore/venv/local/lib/python2.7/site-packages/factory/django.py", line 153, in _create
return manager.create(*args, **kwargs)
File "/home/vagrant/sportamore/venv/local/lib/python2.7/site-packages/django/db/models/manager.py", line 157, in create
return self.get_queryset().create(**kwargs)
File "/home/vagrant/sportamore/venv/local/lib/python2.7/site-packages/django/db/models/query.py", line 322, in create
obj.save(force_insert=True, using=self.db)
File "/home/vagrant/sportamore/sportamor/catalog/models/__init__.py", line 3960, in save
super(GalleryImage, self).save(*args, **kwargs)
File "/home/vagrant/sportamore/venv/local/lib/python2.7/site-packages/django/db/models/base.py", line 545, in save
force_update=force_update, update_fields=update_fields)
File "/home/vagrant/sportamore/venv/local/lib/python2.7/site-packages/django/db/models/base.py", line 573, in save_base
updated = self._save_table(raw, cls, force_insert, force_update, using, update_fields)
File "/home/vagrant/sportamore/venv/local/lib/python2.7/site-packages/django/db/models/base.py", line 654, in _save_table
result = self._do_insert(cls._base_manager, using, fields, update_pk, raw)
File "/home/vagrant/sportamore/venv/local/lib/python2.7/site-packages/django/db/models/base.py", line 687, in _do_insert
using=using, raw=raw)
File "/home/vagrant/sportamore/venv/local/lib/python2.7/site-packages/django/db/models/manager.py", line 232, in _insert
return insert_query(self.model, objs, fields, **kwargs)
File "/home/vagrant/sportamore/venv/local/lib/python2.7/site-packages/django/db/models/query.py", line 1514, in insert_query
return query.get_compiler(using=using).execute_sql(return_id)
File "/home/vagrant/sportamore/venv/local/lib/python2.7/site-packages/django/db/models/sql/compiler.py", line 902, in execute_sql
for sql, params in self.as_sql():
File "/home/vagrant/sportamore/venv/local/lib/python2.7/site-packages/django/db/models/sql/compiler.py", line 860, in as_sql
for obj in self.query.objs
File "/home/vagrant/sportamore/venv/local/lib/python2.7/site-packages/django/db/models/fields/files.py", line 250, in pre_save
if file and not file._committed:
AttributeError: 'ImageField' object has no attribute '_committed'
感谢任何帮助,包括获取具有指定文件名的有效图像的其他方法的提示。提前致谢!
最佳答案
您是否尝试过使用 factory.django.ImageField
模型图像字段的类?听起来它可能符合要求。
这是使用您的模型和 test.jpg
文件从文档中修改的示例:
class GalleryImageFactory(factory.django.DjangoModelFactory):
class Meta:
model = models.GalleryImage
image = factory.django.ImageField(from_path='test.jpg')
关于python - 使用 Factory boy ImageFiled 导致 missing attribute _committed 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31809111/
我有一个脚本可以拍摄图像,并且在重新采样时将短尺寸(宽度或高度)居中放置在方形彩色背景上。这适用于具有较长 WIDTH 的图像,但由于某种原因,任何具有较长 HEIGHT 的图像结果是分离背景填充 -
我在 Server 2008 R2 机器上安装了 PowerShellPack,但无法使用 PSImageTools 模块。所有图像操作都会产生错误 New-Object : Cannot load
我重写了保存方法,如下所示,并使用 get_thumbnails 和 sorl 保存.. 但是收到错误'ImageFile'对象没有属性'_commissed' class HotelPhotos(m
下面的代码进行 AJAX 调用,将数据发送到尝试使用 imagefill() 的 PHP 页面。如果您查看控制台,您会发现帖子已发送且响应正确。 Firebug 显示图像也是正确的图像。我知道图像正在
我正在使用此代码从 WIA 获取扫描图像: const wiaFormatJPEG = '{B96B3CAE-0728-11D3-9D7B-0000F81EF32E}'; wiaFormatP
我正在尝试从 StringIO(或 cStringIO,更具体地说)获取数据并将其转换为 django.core.files.images.ImageFile。 但它不起作用。无论如何,我的意思是它在
我正在开发具有使用 Yocto 项目构建的自定义分发版的 Intel Edison,我正在使用的确切 python 版本是 2.7.3,PIL 版本是 1.1.7。 在尝试通过将 LOAD_TRUNC
我创建了一个小型控制台应用程序来对 .tiff 图像文件执行 OCR,我使用 tess4j 完成了此操作。 public class JavaApplication10 { /** * @param
我尝试使用 Apache Commons Procrun 将 JAR 文件安装为 Windows 服务。该服务已安装,但执行它会出现以下错误: [2018-02-26 14:00:26] [info]
我正在尝试为需要 django.db.models.ImageField 的测试用例设置数据。我正在尝试使用来自 factory-boy 的 factory.django.ImageField,但出现
我是一名优秀的程序员,十分优秀!