2 回答
TA贡献2080条经验 获得超4个赞
考虑以下模型,使用 ImageField 来存储照片:
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 实例都会有一个照片属性,您可以使用该属性来获取所附照片的详细信息:
car = Car.objects.get(name="57 Chevy")
car.photo
<ImageFieldFile: cars/chevy.jpg>
car.photo.name
'cars/chevy.jpg'
car.photo.path
'/media/cars/chevy.jpg'
car.photo.url
'http://media.example.com/cars/chevy.jpg'
TA贡献1789条经验 获得超10个赞
你不需要一个user_pic_url字段。您可以从字段本身获取数据user_pic
class Main(models.Model):
# rest of your fields
user_pic = models.ImageField()
@property
def user_pic_url(self):
return self.user_pic.url
现在,您可以直接访问 URL,如下所示:
model_instance = Main.objects.first()
print(model_instance.user_pic_url)
TA贡献1821条经验 获得超6个赞
如果您想首先获取上传的路径,请确保您已在 settings.py 中配置 MEDIA_URL MEDIA_ROOT,并且还必须将文档中给出的媒体 url 的放置 url 模式放入其中
如果您已经这样做了,您只需放置查询集
obj = Main.objects.all().first()
像这样,当你获取任何对象时,你必须转到图像字段并在之后添加 url,就像这样,你必须只在图像字段中的所有配置之后添加 url
print(obj.user_pic.url) <---------you can get your url like this
添加回答
举报