Django ImageField 一些内置属性

在模型中使用文件

from django.db import models

class Car(models.Model):
    name = models.CharField(max_length=255)
    price = models.DecimalField(max_digits=5, decimal_places=2)
    photo = models.ImageField(upload_to='cars')

任何 Car实例将拥有一个 photo属性,你可以使用它来获取附加照片的详情:

>>> car = Car.objects.get(name="57 Chevy")
>>> car.photo

>>> car.photo.name
'cars/chevy.jpg'
>>> car.photo.path
'/media/cars/chevy.jpg'
>>> car.photo.url
'http://media.example.com/cars/chevy.jpg'

car.photo是一个 File对象,这意味着它拥有以下所描述的所有方法和属性。

文件在数据库中作为保存模型的一部分,因此在模型被保存之前,不能依赖磁盘上使用的实际文件名。

>>> import os
>>> from django.conf import settings
>>> initial_path = car.photo.path
>>> car.photo.name = 'cars/chevy_ii.jpg'
>>> new_path = settings.MEDIA_ROOT + car.photo.name
>>> # Move the file on the filesystem
>>> os.rename(initial_path, new_path)
>>> car.save()
>>> car.photo.path
'/media/cars/chevy_ii.jpg'
>>> car.photo.path == new_path
True
>>> from PIL import Image
>>> car = Car.objects.get(name='57 Chevy')
>>> car.photo.width
191
>>> car.photo.height
287
>>> image = Image.open(car.photo)
Raises ValueError: seek of closed file.

>>> car.photo.open()

>>> image = Image.open(car.photo)
>>> image

Original: https://blog.csdn.net/jjxp2011/article/details/124367675
Author: hmk1900
Title: Django ImageField 一些内置属性

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/733006/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球