簡體   English   中英

相對於數據庫絕對路徑的Django圖像上傳

[英]Django Image Upload in Database Absolute Path Rather Than Relative

我的模特:

class MedicineType(models.Model):
    name = models.CharField(max_length=100)
    image = models.ImageField(upload_to='images/', max_length=255, null=True)

settings.py中

BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
MEDIA_ROOT = os.path.join(BASE_DIR, 'media')
MEDIA_URL = '/media/'

現在,當我從瀏覽器上傳圖像時,圖像的url作為絕對路徑存儲在數據庫中。 例如,名為“ example.png”的圖像將具有

http://localhost:8000/media/images/example.png

但我希望僅將相對路徑存儲在數據庫中。 不能與localhost和端口一起使用。 我怎么做?

你怎么辦?

是什么讓您認為Django在數據庫中存儲http://localhost:8000/media/images/example.png 如果那是django所做的,那么通過在python manage runserver 8010更改端口是否意味着所有上傳的東西都中斷了?

不,那不是Django要做的。 請參閱文檔中的內容

>>> car = Car.objects.get(name="57 Chevy")
>>> car.photo
<ImageFieldFile: 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'

上面應該足以解釋發生了什么。 檢查上面的鏈接以獲取更多詳細信息。

car.photo.name Django存儲在數據庫中的名稱。 car.photo.urlcare.photo.path就是您認為存儲在數據庫中的內容。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM