Python 尝试将图像保存到django模型时出错
我使用beautiful soup成功地从下面描述的网站上刮取和提取图像,但当我查看提取的图像时,它们显示为Url,如下所示。然后,我在尝试将抓取的图像保存到django数据库时遇到了困难,因为下面显示的特定错误不断出现。在我收到错误后,我还尝试使用forloop创建帖子,因为我认为我试图在单个数据中保存列表元素,但它仍然显示相同的错误,或者我收到相同的错误未提交,但当我从标题、摘要中的文件中删除图像时,刮取数据,内容并尝试保存到django数据库。这是成功的。 保存图像是个问题,我需要帮助 下面是我的示例代码 我的抓取图像显示为url列表,如下所示 像这样的东西带来了图像Python 尝试将图像保存到django模型时出错,python,django,django-models,beautifulsoup,django-file-upload,Python,Django,Django Models,Beautifulsoup,Django File Upload,我使用beautiful soup成功地从下面描述的网站上刮取和提取图像,但当我查看提取的图像时,它们显示为Url,如下所示。然后,我在尝试将抓取的图像保存到django数据库时遇到了困难,因为下面显示的特定错误不断出现。在我收到错误后,我还尝试使用forloop创建帖子,因为我认为我试图在单个数据中保存列表元素,但它仍然显示相同的错误,或者我收到相同的错误未提交,但当我从标题、摘要中的文件中删除图像时,刮取数据,内容并尝试保存到django数据库。这是成功的。 保存图像是个问题,我需要帮助 下
images = [i['data-src'] for i in soup.find_all('img', {'class','attachment-jnews-750x375 size-jnews-750x375 lazyload wp-post-image'})]
但是我无法像这样保存上面的图像,因为这样会带来错误
Post.objects.create(
title=title,
content_1=paragraphs,
image=images,
sources=lnk,
)
当我尝试保存到模型时,这将带来一个错误
class Post(models.Model):
title = models.CharField(max_length=250, blank = True, help_text='Maximum 160 Title characters.')
image = models.FileField(upload_to='images', blank=True, null=True, help_text='You must upload original image before continuing.')
我尝试使用for循环,但同样的错误也存在
for image in images:
/ Post.objects.create(title=title,
content_1=paragraphs,
image=images,
sources=lnk,
)
我也犯了这个错误
if file and not file._committed: AttributeError: 'list' object has no attribute '_committed'
请使用以下命令更改for循环代码段
for image in images:
Post.objects.create(
title=title,
content_1=paragraphs,
image=image,
sources=lnk,
)
似乎您正在传递图像列表,而不是一个图像。@SergeyPugach请告诉我一条出路-我需要您的帮助,是的,我正在传递一个图像列表,这就是为什么我在for循环中的代码中使用forloop,而在创建Post对象时,您正在将
图像
传递到必须传递图像
的位置,因为images是您正在遍历的列表,而image是当前循环状态下的列表对象。另外,你的代码在for loopDea@Akash中有缩进问题,请你给我一个好例子,先生,我仍然很困惑,因为图像是列表对象,图像是列表,我用对象横穿列表-你能帮我进一步一点吗?这是刮不刮谢谢@Akash我真的很感激我希望它能解决你的问题,亲爱的@Akash好的,我正在运行代码写一个方法-我如何升级它sir这张图片没有显示甚至你我已经成功地保存了帖子这张图片没有出现在我的帖子中,但是只有一张图片sigb是因为它没有上传或者它是一个链接我正在抓取图片不在哪里出现?在模板中?您可以在管理面板中检查以确认正在保存图像吗?
for image in images:
Post.objects.create(
title=title,
content_1=paragraphs,
image=image,
sources=lnk,
)