Python 向数据库添加图像时,Django“int”对象不可下标
我正在将多个图像插入数据库。我已经保存了新的图像名称。但在将数据插入表时,我得到一个错误:“int”对象不可下标 我到处找了,但找不到解决办法 下面是听写的样子Python 向数据库添加图像时,Django“int”对象不可下标,python,django,python-3.x,django-models,django-views,Python,Django,Python 3.x,Django Models,Django Views,我正在将多个图像插入数据库。我已经保存了新的图像名称。但在将数据插入表时,我得到一个错误:“int”对象不可下标 我到处找了,但找不到解决办法 下面是听写的样子 { "0" = { "blog_id" = "". "blog_image_path" = "07-09-2018__17-54-152069weather.jpg". "is_deleted" = 0 }. "1" = { "blog
{
"0" = {
"blog_id" = "".
"blog_image_path" = "07-09-2018__17-54-152069weather.jpg".
"is_deleted" = 0
}.
"1" = {
"blog_id" = "".
"blog_image_path" = "07-09-2018__17-54-152069user.png".
"is_deleted" = 0
}.
"2" = {
"blog_id" = "".
"blog_image_path" = "07-09-2018__17-54-152069tick.png".
"is_deleted" = 0
}
}
现在在添加数据库时
for image in blog_images_data:
blog_image_data = BlogImages(blog_id=int(blog_id), blog_image_path=image['blog_image_path'], is_deleted=int(image['is_deleted']))# I GET ERROR IN THIS LINE
blog_image_data.save()
我甚至将数据类型更改为INT,但错误仍然存在
下面是模型的详细信息
class BlogImages(models.Model):
blog_image_id = models.AutoField(primary_key=True)
blog = models.ForeignKey(Blog, null=True, on_delete=models.CASCADE)
blog_image_path = models.TextField(null=True)
is_deleted = models.SmallIntegerField(default=0, editable=True)
created_at = models.DateTimeField(auto_now_add=True)
updated_at = models.DateTimeField(auto_now=True)
class Meta:
db_table = 'tbl_blog_images'
提前感谢在您的代码中,for循环迭代字典的键。所以图像是0,1,2,等等
如果这确实是一本字典,那么语法并不正确,应该如下所示:
for blog_id, image in blog_images_data.items():
blog_image_data = BlogImages(
blog_id=int(blog_id),
blog_image_path=image['blog_image_path'],
is_deleted=int(image['is_deleted'])
)
blog_image_data.save()
注意:通常模型都有单个名称,所以是BlogImage,而不是BlogImages
您的字典看起来非常紧张,通常格式是{key:value},而不是{key=value}。此外,在我看来,代码中的图像只是一个int,例如42,因此图像['blog\u image\u path']确实没有意义,您迭代了这些键。
for blog_id, image in blog_images_data.items():
blog_image_data = BlogImages.objects.create(
blog_id=int(blog_id),
blog_image_path=image['blog_image_path'],
is_deleted=int(image['is_deleted'])
)