【问题标题】:How to import ImageField from excel如何从excel导入ImageField
【发布时间】:2022-07-01 03:11:56
【问题描述】:

我正在使用 django-import-export,Excel 文件为 file.xlsx

在导入 ImageField 时,图像会保存为“C:\Users\hp\Desktop\images\gallery\29.jpg”链接,而不是数据库中的实际图像。

models.py

class Product(models.Model):
    name         = models.CharField( max_length=200, verbose_name='Nom')
    slug         = models.SlugField( max_length=150, unique= True, verbose_name='URL')
    reference    = models.CharField( max_length=200, verbose_name='Référence', unique=True, 
                    blank=True, null=True)
    def __str__(self):
        return self.name

class PhotoProduct(models.Model):

    image     = models.ImageField(upload_to='images/produits') 
    actif     = models.BooleanField(verbose_name='actif', default=True)
    product   = models.ForeignKey(Product, related_name="photos", on_delete=models.CASCADE)
    def __str__(self):
        return str(self.product)

###########

资源.py

class PhotoProductAdminResource(resources.ModelResource):
    product   = fields.Field(column_name='product', attribute='product', 
                       widget=ForeignKeyWidget(Product, field='id'))
    class Meta:
        model = PhotoProduct
        fields = ( 
            'id',
            'product',
            'actif',
            'image',
        )

###########

admin.py

@admin.register(PhotoProduct)
class PhotoProductAdmin(ImportExportModelAdmin):
    list_display = ('id', 'product', 'actif')
    list_display_links = ('id','product', )
    list_editable = [ 'actif']
    resource_class = PhotoProductAdminResource 
    form = PhotoProductModelForm

【问题讨论】:

标签: python django django-admin django-import-export


【解决方案1】:

在模型PhotoProduct 中,任何保存的带有图像的实例都将在数据库中保存相对路径(从upload_to 开始)。例如“images/produits/patate.png”

这是所有存储在文件夹中的图像的工作技巧。

  1. 如果您所有的产品图片都存储在 "C:\Users\hp\Desktop\images" 中,您可以复制该文件夹并将其粘贴到您的 django STATIC_ROOT/images/produits

  2. 如上所述,导入您的所有PhotoProduct xlsx 工作表和图片链接。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-07-11
    • 1970-01-01
    • 2012-07-23
    • 2012-06-02
    • 2021-05-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多